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 函数实现行转列。