6.19 次序相关的分组:按序号分组

 

有些时候,我们能够直接或者间接的获取分组序号(成员应该分配到第几组),这种情况下我们可以直接按照分组序号进行分组。
根据员工的入职时间平均分成三组(有余数的顺序分配到某一组),并统计每组的平均工资。部分数据如下:

ID NAME BIRTHDAY ENTRYDATE DEPT SALARY
1 Rebecca 1974/11/20 2005/03/11 R&D 7000
2 Ashley 1980/07/19 2008/03/16 Finance 11000
3 Rachel 1970/12/17 2010/12/01 Sales 9000
4 Emily 1985/03/07 2006/08/15 HR 7000
5 Ashley 1975/05/13 2004/07/30 R&D 16000

函数 A.group() 的选项 @n: 用于按序号分组,具有相同序号的记录被分到同一组(序号为 N 的成员分配到第 N 组,N 从 1 开始)。

脚本:

A
1 =T(“Employee.csv”).sort(ENTRYDATE)
2 =A1.group@n((#-1)*3\A1.len()+ 1)
3 =A2.new(#:GROUP_NO, ~.avg(SALARY):AVG_SALARY)

A1:导入员工表,并按照入职日期排序。
A2:通过排序后的行号计算出所属的分组序号,并按序号分组。
A3:统计每组的平均工资。