Операции группировки
Операции группировки в SQL нужны для того, чтобы объединять строки по какому-то признаку и уже к каждой группе применять агрегирующие функции.
📌 Основное — GROUP BY
GROUP BY
Синтаксис:
SELECT колонка_группировки, агрегатная_функция(...) FROM таблица GROUP BY колонка_группировки;
Пример: количество заказов по каждому клиенту:
SELECT customer_id, COUNT(*) AS order_count FROM orders GROUP BY customer_id;
📌 Несколько колонок
Можно группировать сразу по нескольким полям:
SELECT department, job_title, AVG(salary) AS avg_salary
FROM employees
GROUP BY department, job_title;
→ Средняя зарплата в разрезе "отдел + должность".
📌 HAVING
для фильтрации групп
HAVING
для фильтрации группФильтрация после группировки (в отличие от WHERE
, которое фильтрует строки до неё):
SELECT department, COUNT(*) AS emp_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
→ Показать только те отделы, где больше 5 сотрудников.
📌 Итоговые операции группировки
По одному полю – группируем по одному признаку.
По нескольким полям – создаём более детальные группы.
С подзапросами – можно сначала сгруппировать, потом использовать результат во внешнем запросе.
С HAVING – фильтрация именно сгруппированных данных.
🔑 Разница между агрегированием и группировкой:
Агрегатные функции дают одно значение для множества строк.
Группировка разбивает данные на группы, к которым можно применить агрегаты.
Last updated
Was this helpful?