Ответ
HAVING используется в SQL для фильтрации результатов агрегатных функций (COUNT, SUM, AVG и т.д.) после группировки с GROUP BY. В отличие от WHERE, который фильтрует строки до группировки, HAVING работает с уже сгруппированными данными.
Пример:
SELECT department, COUNT(*) as employee_count
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
Этот запрос вернет только отделы с более чем 5 сотрудниками. Без HAVING пришлось бы использовать подзапрос или временную таблицу.
Ключевые отличия от WHERE:
- WHERE фильтрует до группировки, HAVING - после
- HAVING может использовать агрегатные функции
- HAVING всегда идет после GROUP BY (если он есть)