Sobes.tech
Middle
20

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

Companies where asked
нетология
ДомкликДомклик

Answer from AI

sobes.tech AI

Оконные функции (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;

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

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