5.5

# Using the HAVING and WHERE Clauses Together

Below is an example of a statement that includes both the HAVING and WHERE clause in the same SQL statement.

USE bike;SELECT category_id, AVG(list_price)FROM productWHERE model_year = 2016GROUP BY category_idHAVING AVG(list_price) > 1000

Output:

WHERE model_year = 2016

• The WHERE clause executes before the GROUP BY
• You can refer to columns not defined in the SELECT
• You cannot use aggregate functions in the WHERE

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

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?
1. Very Low Quality
2. Low Quality
3. Moderate Quality
4. High Quality
5. Very High Quality
Comments will be automatically submitted when you navigate away from the page.