Ответ
Агрегирующие функции (или агрегатные) — это функции SQL, которые производят вычисления над множеством строк и возвращают одно значение для каждой группы, заданной GROUP BY.
Синтаксис с GROUP BY:
SELECT
department_id,
COUNT(*) AS employee_count,
AVG(salary) AS average_salary,
MAX(salary) AS top_salary
FROM employees
GROUP BY department_id;
Этот запрос группирует сотрудников по отделам и для каждого отдела вычисляет количество сотрудников, среднюю и максимальную зарплату.
Важные правила:
- SELECT-список: Все столбцы в
SELECT, не являющиеся аргументами агрегирующих функций, должны быть указаны вGROUP BY. - Фильтрация групп: Для фильтрации по результату агрегации (например,
average_salary > 50000) используетсяHAVING, а неWHERE. - Игнорирование NULL:
SUM(),AVG(),MAX(),MIN()игнорируютNULL.COUNT(column_name)также их игнорирует, в отличие отCOUNT(*).
Почему это важно: Использование GROUP BY с агрегирующими функциями — основа для построения аналитических отчетов и сводных таблиц в реляционных базах данных.