SQL
Filter Aggregated Data with SQL HAVING Clause
Discover how to use the SQL HAVING clause to filter results based on aggregate functions after grouping data, essential for advanced reporting and summaries.
SELECT
category_id,
COUNT(product_id) AS total_products,
AVG(price) AS average_price
FROM
Products
GROUP BY
category_id
HAVING
COUNT(product_id) > 5 AND AVG(price) < 100.00;
How it works: This query groups products by their `category_id` and calculates the total number of products and their average price for each category. The `HAVING` clause then filters these grouped results, showing only categories that meet specific criteria: having more than 5 products and an average price less than $100. This is crucial for filtering on aggregate values that the `WHERE` clause cannot directly address.