Пример синтаксиса запроса с HAVING

55. Показать пример использования HAVING

Условие задачи:
Дана таблица Employees с колонками:

  • employee_name;

  • salary;

  • department_id.

Необходимо привести пример SQL-запроса с использованием HAVING.


Спойлеры к решению

Подсказки
💡 WHERE фильтрует отдельные строки до группировки.
💡 HAVING используется для фильтрации результатов группировки.
💡 Обычно HAVING применяется вместе с агрегатными функциями: COUNT(), SUM(), AVG(), MIN(), MAX().

Решение

Например, выведем отделы, в которых средняя зарплата сотрудников больше 50000:

SELECT
    department_id,
    COUNT(*) AS employee_count,
    AVG(salary) AS average_salary
FROM Employees
GROUP BY department_id
HAVING AVG(salary) > 50000;

Сначала сотрудники группируются по отделам:

GROUP BY department_id

Для каждой группы вычисляются количество сотрудников и средняя зарплата:

COUNT(*)
AVG(salary)

Затем:

HAVING AVG(salary) > 50000

оставляет только те отделы, в которых средняя зарплата превышает 50000.

Главное отличие:

WHERE  — фильтрует строки до GROUP BY
HAVING — фильтрует группы после GROUP BY