Что такое оконные функции в SQL и для чего они используются?

Оконные функции (window functions) в SQL — это функции, которые выполняют вычисления по набору строк, связанных с текущей строкой, без группировки результатов в одну строку, как это происходит с агрегатными функциями.

Короткий ответ

Что ответить на собеседовании

Оконные функции (window functions) в SQL — это функции, которые выполняют вычисления по набору строк, связанных с текущей строкой, без группировки результатов в одну строку, как это происходит с агрегатными функциями.

Подробный разбор

Ответ с пояснениями

Оконные функции (window functions) в SQL — это функции, которые выполняют вычисления по набору строк, связанных с текущей строкой, без группировки результатов в одну строку, как это происходит с агрегатными функциями.

Они позволяют, например, вычислять скользящие суммы, ранжировать строки, вычислять кумулятивные итоги, средние значения и т.п., при этом сохраняя исходное количество строк в результате.

Пример использования оконной функции ROW_NUMBER():

SELECT
    employee_id,
    department_id,
    salary,
    ROW_NUMBER() OVER (PARTITION BY department_id ORDER BY salary DESC) AS rank_in_dept
FROM employees;

Здесь для каждого сотрудника вычисляется его ранг по зарплате внутри отдела, при этом все строки сохраняются.

Оконные функции полезны для аналитики, отчетности и сложных вычислений, где нужно видеть контекст каждой строки относительно других.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее