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