Fundamentals · Medium · Free
GROUP BY vs HAVING — filter rows vs filter groups.
FresherFundamentalsDatabase Fundamentals
GROUP BY vs HAVING
sql
SELECT dept, COUNT(*) AS cnt
FROM students
WHERE graduation_year = 2026
GROUP BY dept
HAVING COUNT(*) > 50;WHERE filters rows before grouping; HAVING filters groups after aggregation.
Every non-aggregated SELECT column must appear in GROUP BY (SQL standard).