Вопрос проверяет умение работать с аналитическими запросами и сложными выборками в SQL.
Оконные функции позволяют выполнять вычисления по группе строк, не объединяя их в одну.
Они часто используются в аналитике и отчётах.
В отличие от GROUP BY, они сохраняют все строки.
Это удобно для ранжирования, скользящих агрегатов и аналитики.
Оконные функции делают SQL более выразительным.
Оконные функции решают задачу аналитических вычислений внутри SQL-запроса.
Определение:
Оконная функция — это функция, которая выполняет вычисление по набору строк (окну), сохраняя каждую строку в результате.
Важно понимать разницу:
GROUP BY уменьшает количество строк
Оконные функции сохраняют все строки
SELECT
user_id,
score,
RANK() OVER (ORDER BY score DESC) AS rank
FROM results;
SELECT
user_id,
salary,
AVG(salary) OVER () AS avg_salary
FROM employees;
Накопительные суммы
Скользящие средние
Аналитика по времени
Отчёты
Аналитика
Финансовые расчёты
BI-системы
Вывод:
Используй оконные функции, когда нужно делать аналитику без потери строк и сложных подзапросов.