Back to questions
СБЕР
Middle
3
Какая разница между оконной функцией и агрегирующей функцией в SQL?
Companies where asked
Answer from AI
sobes.tech AI
Агрегирующая функция в SQL (например, SUM, AVG, COUNT) вычисляет одно итоговое значение по группе строк и возвращает одну строку на группу. Например, SUM(salary) посчитает сумму зарплат по всей группе.
Оконная функция (window function) тоже работает с группами строк, но возвращает результат для каждой строки, учитывая контекст окна (набор строк вокруг текущей). Например, SUM(salary) OVER (PARTITION BY department) вернёт сумму зарплат по отделу для каждой строки, не сводя результат к одной строке.
Пример:
SELECT employee_id, department, salary,
SUM(salary) OVER (PARTITION BY department) AS dept_salary_sum
FROM employees;
Здесь для каждой строки будет сумма зарплат в отделе, а не одна строка на отдел, как при использовании агрегирующей функции с GROUP BY.