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:根据枚举分组结果,统计每个员工的平均工资。