6.14 按段分组:按表达式分段

 

根据表达式的计算结果,将记录分段分组并汇总计算平均值。
根据员工表,按入职时间 10 年以下,10~20 年和 20 年以上分组,并统计每组的平均工资。

ID NAME HIREDATE SALARY
1 Rebecca 2005-03-11 7000
2 Ashley 2008-03-16 11000
3 Rachel 2010-12-01 9000
4 Emily 2006-08-15 7000
5 Ashley 2004-07-30 16000

在对位函数 align(n,y) 中,可以使用 pseg(x,y) 函数进行分段。

脚本:

A
1 =connect(“db”)
2 =A1.query@x(“select * from EMPLOYEE”)
3 [0,10,20]
4 =now()
5 =A2.align@a(A3.len(),A3.pseg(elapse@y(A4,-~), HIREDATE))
6 =A5.new(A3(#):EntryYears,~.avg(SALARY):AvgSalary)

A1 连接数据库
A2 查询员工表
A3 定义入职年限区间
A4 获取当前日期时间
A5 使用 pseg 函数获取入职时间所在区间
A6 统计每组的平均工资

运行结果:

EntryYears AvgSalary
0 6777.78
10 7445.53
20 6928.57