Introduction
Conditional aggregation helps you count or sum values based on specific conditions in one query. It makes data summaries easier and faster.
SELECT column1, SUM(CASE WHEN condition THEN value ELSE 0 END) AS alias_name FROM table_name GROUP BY column1;
SELECT department, COUNT(CASE WHEN gender = 'F' THEN 1 END) AS female_count FROM employees GROUP BY department;
SELECT product_category, SUM(CASE WHEN sale_date >= '2024-01-01' THEN amount ELSE 0 END) AS sales_2024 FROM sales GROUP BY product_category;
CREATE TABLE orders ( order_id INT, customer_id INT, region VARCHAR(20), amount DECIMAL(10,2) ); INSERT INTO orders VALUES (1, 101, 'North', 100.00), (2, 102, 'South', 150.00), (3, 101, 'North', 200.00), (4, 103, 'East', 50.00), (5, 102, 'South', 100.00); SELECT customer_id, SUM(CASE WHEN region = 'North' THEN amount ELSE 0 END) AS north_sales, SUM(CASE WHEN region = 'South' THEN amount ELSE 0 END) AS south_sales FROM orders GROUP BY customer_id ORDER BY customer_id;
SUM(CASE WHEN condition THEN value ELSE 0 END)status = 'active' using conditional aggregation?sales with columns region and amount, what is the output of this query?SELECT region, SUM(CASE WHEN amount > 100 THEN amount ELSE 0 END) AS big_sales FROM sales GROUP BY region;
SELECT department, COUNT(CASE WHEN salary > 50000 THEN 1 ELSE 0 END) AS high_earners FROM employees GROUP BY department;
Pass the test and this pattern moves unknown