Оконные функции — что это и зачем?

Ответ

ROW_NUMBER(), RANK(), LAG/LEAD, SUM OVER — агрегации поверх результата без сворачивания строк в группы.

Разбор: Оконные функции считают агрегаты и ранги поверх результата запроса, сохраняя каждую исходную строку, — в этом их отличие от GROUP BY, который схлопывает группы. Главная ошибка — считать их эквивалентом GROUP BY или клиентской постобработкой: они выполняются СУБД после WHERE/GROUP BY/HAVING, но до финального ORDER BY, и не уменьшают количество строк.

Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.

Заказать гайд Пройти тест
новые гайды и свежие вопросы с собесов — первыми в Telegram Смотреть гайды Подписаться