Встречается на собеседованиях • сегодня

Как рассчитать значение медианы в SQL без функции

В SQL без встроенной функции медиану можно найти, отсортировав данные и выбрав среднее значение (или одно из центральных). Для нечетного количества строк берется центральное значение, для четного — среднее двух центральных.

Пример для PostgreSQL (аналогично работает в других СУБД с небольшими изменениями):

sql
WITH ranked_data AS (
  SELECT value,
         ROW_NUMBER() OVER (ORDER BY value) as row_num,
         COUNT(*) OVER () as total_count
  FROM table_name
)
SELECT AVG(value) as median
FROM ranked_data
WHERE row_num IN (
  (total_count + 1) / 2,
  (total_count + 2) / 2
);

Для больших таблиц этот метод может быть неэффективен из-за полной сортировки данных. В некоторых СУБД есть оптимизации, например MEDIAN() в Oracle или PERCENTILE_CONT(0.5) в современных версиях.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы