数据分组、透视与窗口操作:全面解析与实践
1. 多对一透视
多对一透视是一种特殊的透视方式,允许用单个目标行 - 列交叉点来表示多个源行。与一对一透视中使用的聚合函数不同,多对一透视中的聚合函数具有实际意义。
1.1 示例场景
假设需要查询数据库中的 Sales.OrderValues 视图,将数据进行透视,使每行代表一个客户,每列代表一个订单年份,并且在每个客户和年份的交叉点返回适用值的总和。
1.2 标准方法查询
USE TSQLV3;
SELECT custid,
SUM(CASE WHEN orderyear = 2013 THEN val END) AS [2013],
SUM(CASE WHEN orderyear = 2014 THEN val END) AS [2014],
SUM(CASE WHEN orderyear = 2015 THEN val END) AS [2015]
FROM (SELECT custid, YEAR(orderdate) AS orderyear, val
FROM Sales.OrderValues) AS D
GROUP BY custid;
此查询的输出如下:
| custid | 2013 | 2014 | 2015 |
| ------ | ---- | ---- | ---- |
| 1 | NULL | 2022.50 | 2250.50 |
| 2 | 88.80 | 799.75
超级会员免费看
订阅专栏 解锁全文
136

被折叠的 条评论
为什么被折叠?



