3.27 序列的聚合运算:交集
对序列构成的序列聚合计算交列。
根据销售数据表,统计 2014 年每个月销售金额均在前 20 名的客户名称。
| OrderID | Customer | SellerId | OrderDate | Amount |
|---|---|---|---|---|
| 10400 | EASTC | 1 | 2014/01/01 | 3063.0 |
| 10401 | HANAR | 1 | 2014/01/01 | 3868.6 |
| 10402 | ERNSH | 8 | 2014/01/02 | 2713.5 |
| 10403 | ERNSH | 4 | 2014/01/03 | 1005.9 |
| 10404 | MAGAA | 2 | 2014/01/03 | 1675.0 |
| … | … | … | … | … |
脚本:
| A | |
|---|---|
| 1 | =connect(“db”).query@x(“select * from sales”) |
| 2 | =A1.select(year(OrderDate)==2014) |
| 3 | =A2.group(month(OrderDate)) |
| 4 | =A3.(~.group(Customer)) |
| 5 | =A4.(~.top(-20;sum(Amount))) |
| 6 | =A5.(~.(Customer)) |
| 7 | =A6.isect() |
A1 连接数据源,读取销售表
A2 选出 2014 年数据
A3 使用 group 函数,将 2014 年的数据按照月份分组
A4 分组后的成员按照客户分组
A5 循环每个月的数据,计算每月销售额前 20 的客户
A6 列出每个月销售额前 20 名的客户名称
A7 使用 isect() 函数计算所有组之间的交集
运行结果:
| Member |
|---|
| HANAR |
| SAVEA |
