【背景】
报表中有一大需求是透视表,目前有很多分析类应用也搭载了此类功能,那么我们能不能直接用SQL做透视表呢?
【分析】
BI类软件将透视表功能做在了前端,但是数据本身还是存储在数据库中,所以必然有方法可以用SQL直接实现透视表。
【心法】
透视表是任意选取一个普通表格中的一个字段作为行,另一个字段作为列,然后获得相应度量统计的结构。
用SQL实现透视表的关键:
- group by获得行
- case when 获得列
- select + sum获得度量统计值
【举例】
假设我们有一个名为sales的表,结构如下:

我们希望创建一个透视表,按日期汇总每种产品的销售额。目标结果如下:

SQL语句:
SELECT
sale_date,
SUM



















![[激光原理与应用-110]:南京科耐激光-激光焊接-焊中检测-智能制程监测系统IPM介绍 - 13 - 德擎激光焊接在线缺陷检测系统 WDD详解解析](https://i-blog.csdnimg.cn/direct/7624d67f56fd46419d35918658de230b.png)