SQL
Pivot Data from Rows to Columns (Conditional Aggregation)
Learn to transform row-based data into a columnar format using SQL, effectively pivoting categories into separate columns for reporting and analysis.
SELECT
product_category,
SUM(CASE WHEN sales_quarter = 'Q1' THEN total_sales ELSE 0 END) AS Q1_Sales,
SUM(CASE WHEN sales_quarter = 'Q2' THEN total_sales ELSE 0 END) AS Q2_Sales,
SUM(CASE WHEN sales_quarter = 'Q3' THEN total_sales ELSE 0 END) AS Q3_Sales,
SUM(CASE WHEN sales_quarter = 'Q4' THEN total_sales ELSE 0 END) AS Q4_Sales
FROM
ProductSales
GROUP BY
product_category
ORDER BY
product_category;
How it works: This query pivots data, transforming distinct values from rows into separate columns. It uses `SUM` with `CASE` statements to conditionally aggregate `total_sales` for each `sales_quarter` into their own columns (Q1_Sales, Q2_Sales, etc.), grouped by `product_category`. This technique is invaluable for creating summary reports where categories become distinct fields.