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