6.8 按序号对齐分组:每组保留所有匹配成员

 

按指定的序号顺序将数据分组,每组保留所有匹配成员。适用于关心每组的成员信息,或者需要用这些成员记录继续进行统计的场景。

根据销售表,顺序列出 2014 年每个月的销售总额。销售表部分数据如下:

ID CustomerID OrderDate Amount
10248 VINET 2013/07/04 2440
10249 TOMSP 2013/07/05 1863.4
10250 HANAR 2013/07/08 1813.0
10251 VICTE 2013/07/08 670.8
10252 SUPRD 2013/07/09 3730.0

在SPL中函数A.align(n,y)的选项@a ,用于在对齐分组时每组保留所有匹配成员。
脚本:

A
1 =T(“Sales.csv”)
2 =A1.select(year(ORDERDATE)==2014)
3 =A2.align@a(12,month(ORDERDATE))
4 =A3.new(#:Month,~.sum(AMOUNT):AMOUNT)

A1:查询销售表。
A2:从销售表中选出 2014 年的记录。
A3:使用函数A.align@a (n,y),将订单表的月份按照1到12的顺序分为12组,选项@a 每组保留所有匹配成员。
A4:统计每个月的销售总额。

运行结果:

Month Amount
1 66692.8
2 52207.2
3 39979.9
4 60699.39