Назад к вопросам
Middle
19
Что такое оконные функции и в чём их преимущество перед агрегатными?
Компании, где спрашивали
МВидео/эльдорадо
Ответ от нейросети
sobes.tech AI
Оконные функции (window functions) в SQL позволяют выполнять вычисления по набору строк, связанных с текущей строкой, без группировки результата. В отличие от агрегатных функций, которые сводят несколько строк к одной (например, SUM, AVG с GROUP BY), оконные функции сохраняют исходное количество строк, добавляя вычисленные значения как дополнительные столбцы.
Преимущества оконных функций:
- Позволяют вычислять агрегаты по «окну» строк, например, скользящие суммы, ранжирование, накопительные итоги.
- Можно использовать вместе с обычными столбцами без группировки.
- Удобны для аналитических запросов, где нужно сравнивать значения в пределах групп или по порядку.
Пример:
SELECT
employee_id,
department_id,
salary,
AVG(salary) OVER (PARTITION BY department_id) AS avg_dept_salary
FROM employees;
Здесь для каждой строки вычисляется средняя зарплата по отделу, при этом каждая строка остаётся в результате.