6.11 枚举分组:不匹配成员放到新组
按枚举条件进行分组时,可能会有不匹配任何一组条件的成员,我们可以将这些成员存放到新组。适用于不仅关心匹配的成员信息,还要关心其他不匹配成员的场景。
根据年龄将员工分组统计平均工资,分成 35 岁以下、45 岁以下和其他三个组。员工表部分数据如下:
ID | NAME | BIRTHDAY | STATE | DEPT | SALARY |
---|---|---|---|---|---|
1 | Rebecca | 1974/11/20 | California | R&D | 7000 |
2 | Ashley | 1980/07/19 | New York | Finance | 11000 |
3 | Rachel | 1970/12/17 | New Mexico | Sales | 9000 |
4 | Emily | 1985/03/07 | Texas | HR | 7000 |
5 | Ashley | 1975/05/13 | Texas | R&D | 16000 |
… | … | … | … | … | … |
在 SPL 中函数 A.enum() 的选项 @n,用于在枚举分组时将不匹配成员存放到新组。
脚本:
A | |
---|---|
1 | =T(“Employee.csv”) |
2 | [?<35,?<45] |
3 | =A1.enum@n(A2, age(BIRTHDAY)) |
4 | [35 岁以下,45 岁以下, 其他] |
5 | =A3.new(A4(#):AGE_AREA,~.avg(SALARY):AVG_SALARY) |
A1:导入员工表。
A2:定义分组条件。
A3:使用函数 A.enum() 按年龄条件枚举分组,使用选项 @n 将不匹配成员存放到新组。
A4:定义每组的名称。
A5:根据枚举分组结果,统计每个员工的平均工资。