5.5
Using the HAVING Clause
Filtering Aggregate Functions With The HAVING Clause
- The HAVING CLAUSE allows you to use an aggregate function as a filter. This is not allowed in a WHERE clause.
- Any columns or expressions you want to use in a HAVING clause, MUST BE DEFINED IN THE SELECT CLAUSE as well.
Code Sample:
USE bike;
SELECT category_id, AVG(list_price)
FROM product
GROUP BY category_id
HAVING AVG(list_price) > 1000
Output:
We previously discussed the preceding lines of code for this query so we will focus solely on the HAVING clause.
HAVING AVG(list_price) > 1000
- The HAVING clause executes after the GROUP BY clause but before the SELECT
- If you use an aggregate function in the HAVING clause, you must include the same aggregate function in the SELECT
- If you reference a column or expression in the HAVING clause, you must include the same column or expression in the SELECT
- You cannot use aggregate functions in a WHERE clause

CC BY-NC-ND International 4.0: This work is released under a CC BY-NC-ND International 4.0 license, which means that you are free to do with it as you please as long as you (1) properly attribute it, (2) do not use it for commercial gain, and (3) do not create derivative works.
End-of-Chapter Survey
: How would you rate the overall quality of this chapter?- Very Low Quality
- Low Quality
- Moderate Quality
- High Quality
- Very High Quality