8.1 行转列
行转列,将多行合并成一行,指定字段的特定值转换为新字段,新字段的值则取自于原行的其它字段。
根据成绩表,统计各班各科的最高分。
原始表:
| Class | StudentID | Subject | Score |
|---|---|---|---|
| Class one | 1 | Math | 89 |
| Class one | 1 | Chinese | 93 |
| Class two | 2 | Math | 92 |
| Class two | 2 | Chinese | 97 |
转置后:
| Class | MathMax | ChineseMax |
|---|---|---|
| Class one | 89 | 93 |
| Class two | 92 | 97 |
脚本:
| A | |
|---|---|
| 1 | =connect(“oracle”) |
| 2 | =A1.query@x(“select Class, Subject, max(Score) MaxScore from StudentScore group by Class, Subject”) |
| 3 | =A2.pivot(Class; Subject, MaxScore; “Math”:“MathMax”, “Chinese”:“ChineseMax”) |
A1 连接数据库
A2 从数据库取数,这里直接统计了各班各科的最高分。
A3 使用 pivot 函数实现行转列。
