Topics
WHERE filters individual rows before grouping; HAVING filters groups after aggregation.
SELECT department, COUNT(*)
FROM employees
WHERE salary > 40000
GROUP BY department
HAVING COUNT(*) > 5;
Here, WHERE filters high earners; HAVING ensures groups have more than 5 employees.