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.