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 |
… | … |