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.

Need help integrating this into your project?

Our team of expert developers can help you build your custom application from scratch.

Hire DigitalCodeLabs