SQL
Filter Aggregated Results Using HAVING Clause
Learn how to group data and apply conditions to the aggregated results using the SQL HAVING clause, essential for complex reporting and analytics.
SELECT
category,
COUNT(*) AS total_products,
AVG(price) AS average_price
FROM
products
GROUP BY
category
HAVING
COUNT(*) > 5 AND AVG(price) > 50.00;
How it works: This snippet demonstrates how to use GROUP BY to aggregate data (e.g., counting products and averaging prices per category) and then apply a filter to these aggregated groups using the HAVING clause. The HAVING clause allows you to specify conditions on aggregate functions (like COUNT() or AVG()), unlike WHERE which filters individual rows before aggregation. This is crucial for reports needing to show groups that meet specific collective criteria.