Агрегирующая функция в SQL (например, SUM, AVG, COUNT) вычисляет одно итоговое значение по группе строк и возвращает одну строку на группу. Например, SUM(salary) посчитает сумму зарплат по всей группе.
Какая разница между оконной функцией и агрегирующей функцией в SQL?
Агрегирующая функция в SQL (например, SUM, AVG, COUNT) вычисляет одно итоговое значение по группе строк и возвращает одну строку на группу. Например, SUM(salary) посчитает сумму зарплат по всей группе.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Агрегирующая функция в 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.