首页 > 解决方案 > 通过聚合按类别透视数据

问题描述

我有以下结构:

Date,           Type,       Country,     Sales,     NumOfItems
2020-12-24,     Basic,      USA,         700,       5
2020-12-24,     Standard,   USA,         300,       3
2020-12-24,     Basic,      USA,         100,       1
2020-12-24,     Standard,   USA,         200,       6

如何旋转这些数据以获得以下结构:

Date,        Country,  Sales,  NumOfItems,  SalesBasic,  NumOfItemsBasic,  SalesStandard,  NumOfItemsBasic
2020-12-24,  USA,      1300,   15,          800,         6                 500             9

并按日期和国家分组?

提前感谢您的任何建议和问候!

标签: sqlpivot

解决方案


您可以聚合 CASE 语句,例如:

SELECT Date, Country, SUM(Sales) AS Sales, SUM(NumOfItems),
       SUM(CASE WHEN Type = 'Basic' THEN Sales ELSE null END) AS SalesBasic,
       ...
 GROUP BY 
       Date, Country

推荐阅读