8.4 动态行转列

 

动态行转列,是指转置时生成的字段不能事先指定,只能根据原字段的取值动态确定。
员工表如下:

Name Dept Area Salary
David Sales Beijing 8000
Daniel R&D Beijing 15000
Andrew Sales Shanghai 9000
Robert Sales Beijing 26000
Rudy R&D Shanghai 23000

统计各部门在不同地区的平均工资,现在不知道有哪些地区,想要转换成如下结果:

Dept Beijing Shanghai
Sales 13000 11000
R&D 15000 14000

这个例子是行转列,目标字段需要从数据中提取。pivot 函数支持这种动态转置,不指定目标字段时,它会自动提取目标字段的名称。

脚本:

A
1 =connect(“db”)
2 =A1.query@x(“select Dept,Area,avg(Salary) as AvgSalary from Employee group by Dept,Area”)
3 =A2.pivot(Dept; Area, AvgSalary)

A1 连接数据源。
A2 从员工表中取出按部门、地区分组的平均工资。
A3 使用 pivot 函数行转列,这里省略了目标字段。