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