Back to questions
Junior — Middle
63
Какое назначение у оконных функций в SQL и чем они отличаются от обычных агрегатных функций?
Companies where asked
Почтатех
Answer from AI
sobes.tech AI
Оконные функции (window functions) в SQL позволяют выполнять агрегатные или аналитические вычисления по набору строк, связанных с текущей строкой, без группировки результата в одну строку, как это происходит с обычными агрегатными функциями.
Основные отличия оконных функций от агрегатных:
- Оконные функции вычисляются по «окну» строк, определённому с помощью конструкции
OVER(), и возвращают значение для каждой строки исходного набора данных. - Агрегатные функции (например,
SUM(),COUNT()) обычно группируют строки и возвращают одно значение на группу, уменьшая количество строк в результате.
Пример использования оконной функции:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_department_salary
FROM employees;
Здесь для каждой строки вычисляется средняя зарплата по отделу, не объединяя строки в группы, что позволяет видеть и индивидуальную зарплату, и среднюю по отделу одновременно.
Таким образом, оконные функции расширяют возможности анализа данных, сохраняя детализацию строк.