Базы данных / SQL middle
Что такое Оконные функции?
Ответ
ROW_NUMBER(), RANK(), DENSE_RANK() — нумерация/ранжирование. LAG/LEAD — предыдущая/следующая строка. SUM/AVG/COUNT OVER (PARTITION BY ... ORDER BY ...) — агрегация без GROUP BY. В отличие от GROUP BY оконные функции не сворачивают строки.
Разбор: Оконные функции вычисляются поверх результирующего набора без сворачивания строк: ROW_NUMBER/RANK/DENSE_RANK нумеруют и ранжируют, LAG/LEAD дают предыдущую/следующую строку, а SUM/AVG/COUNT OVER агрегируют без GROUP BY. Ключевая ловушка — что оконные функции, в отличие от GROUP BY, не уменьшают число строк. LAG — это предыдущая строка, LEAD — следующая (а не наоборот), RANK и DENSE_RANK различаются обработкой пропусков при равных значениях.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.