SQL Practice Logo

SQLPractice Online

HAVING Clause: Mistakes

Module: Aggregate Functions & Grouping

SELECT department, COUNT(*) FROM employees HAVING salary > 50000 GROUP BY department;

SELECT department, COUNT(*) FROM employees WHERE salary > 50000 GROUP BY department;

salary > 50000 filters individual rows, so use WHERE before GROUP BY.

WHERE for row filters, HAVING for group filters

High

Use WHERE for row-level conditions, not HAVING

SELECT department, COUNT(*) FROM employees WHERE COUNT(*) > 10 GROUP BY department;

SELECT department, COUNT(*) FROM employees GROUP BY department HAVING COUNT(*) > 10;

COUNT(*) is an aggregate function, must use HAVING after GROUP BY.

Aggregates only allowed in HAVING, not WHERE

High

Cannot use aggregates in WHERE clause