Оконная функция
SQL-функция, вычисляющая значение по набору строк («окну») рядом с текущей, но в отличие от GROUP BY не схлопывающая их.
Синтаксис: function() OVER (PARTITION BY ... ORDER BY ...). Типичные функции: ROW_NUMBER(), RANK(), DENSE_RANK(), LAG()/LEAD() (предыдущая и следующая строка), SUM() OVER (...) (нарастающий итог). Агрегат с GROUP BY сворачивает строки, а оконная функция сохраняет все и добавляет вычисляемый столбец — например, «каждый заказ и общая сумма покупок клиента в той же строке». Применения: top-N в группе, текущий баланс, доля от общего, поиск пропусков. Стандарт SQL:2003, поддерживается всеми современными СУБД. Одна из самых недооценённых возможностей SQL: часто заменяет громоздкие самосоединения.