SQL行列转换
数据分析经常会遇到行列转换,SQL中的行列转化集可以用常规的case when/union all语句,也可以用专门的行列转换函数pivot和unpivot。
数据表表1(T1)如下表所示,是数据库常见的存储形式,课程的分数按行记录:
姓名 |
课程 |
分数 |
张三 |
语文 |
80 |
张三 |
数学 |
90 |
张三 |
英语 |
98 |
李四 |
语文 |
82 |
李四 |
数学 |
96 |
李四 |
英语 |
88 |
数据表表2(T2)如下表所示,课程的分数按列记录:
姓名 |
语文 |
数学 |
英语 |
张三 |
80 |
90 |
98 |
李四 |
82 |
96 |
88 |
case when/union all
- case when 将行记录转化为列记录(T1-&