HAVING — фильтрация после GROUP BY, работает с агрегатными функциями. WHERE фильтрует строки до группировки, HAVING — после.
SELECT department, COUNT(*) as cnt
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;
В HAVING можно использовать COUNT, SUM, AVG, MAX, MIN и другие агрегатные функции. WHERE с агрегатами не работает — будет ошибка. Порядок выполнения: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY.