Aggregates
Having
Filtering Groups
HAVING filters after grouping. It can use aggregate values that WHERE cannot.
Program
Play the query to keep only items with at least five sold.
having.sql
CREATE TABLE sales (item TEXT, qty INTEGER);
INSERT INTO sales VALUES ('book', 2), ('pen', 5), ('book', 3), ('pencil', 1);
SELECT item, SUM(qty) AS sold FROM sales GROUP BY item HAVING SUM(qty) >= 5 ORDER BY item;
HAVING
`HAVING SUM(qty) >= 5` keeps groups after aggregation.
WHERE vs HAVING
`WHERE` filters rows before grouping; `HAVING` filters groups after grouping.
threshold
Aggregate filters are useful for leaderboards and reports.