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:统计每组的平均工资。