Встречается на собеседованиях • сегодня
Как найти медиану в SQL не используя функцию медианы
Для нахождения медианы в SQL без встроенной функции можно использовать оконные функции и подзапросы. Вот пример для PostgreSQL:
sql
SELECT AVG(value) AS median
FROM (
SELECT value,
ROW_NUMBER() OVER (ORDER BY value) AS row_num,
COUNT(*) OVER () AS total_count
FROM your_table
) ranked
WHERE row_num IN (
(total_count + 1) / 2,
(total_count + 2) / 2
);Для нечетного количества строк оба условия дадут одно и то же значение, для четного - два средних значения, которые усредняются.
Альтернативный подход с PERCENTILE_CONT (если доступен):
sql
SELECT PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY value)
FROM your_table;Для больших таблиц лучше использовать приближенные методы, например, с помощью гистограмм или выборки.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы