3.2 两个集合的交集

 

集合 A 和 B 的交集是指由所有属于集合 A 且属于集合 B 的成员所组成的集合。比如集合 [1,2,3] 与[1,3,5]的交集,是集合[1,3]。

某商家有网店和实体店铺两种销售渠道,其销售数据分别存储在 SALES_ONLINE 和 SALES_STORE 两个表中。现在要查询 2014 年在网店和实体店都有消费的客户有哪些。部分数据如下:

SALES_ONLINE:

ID CUSTOMERID ORDERDATE PRODUCTID AMOUNT
1 HANAR 2014/01/01 17 3868.6
2 ERNSH 2014/01/03 42 1005.9
3 LINOD 2014/01/06 64 400.0
4 OTTIK 2014/01/07 10 1194.0
5 OCEAN 2014/01/09 41 319.2

SALES_STORE:

ID CUSTOMERID ORDERDATE SELLERID PRODUCTID AMOUNT
1 EASTC 2014/01/01 1 27 3063.0
2 ERNSH 2014/01/02 8 70 2713.5
3 MAGAA 2014/01/03 2 74 1675.0
4 SAVEA 2014/01/07 7 45 2018.2
5 FOLIG 2014/01/08 8 30 1622.4

SPL 中可以使用符号 "^" 来计算集合的交集。比如 A^B 就是集合 A 与集合 B 的交集。

脚本:

A
1 =T(“SalesOnline.xlsx”).select(year(ORDERDATE)==2014)
2 =T(“SalesStore.xlsx”).select(year(ORDERDATE)==2014)
3 =A1.id(CUSTOMERID)^A2.id(CUSTOMERID)

A1:从文件中导入线上销售表,并选出 2014 年的销售记录。
A2:从文件中导入实体店销售表,并选出 2014 年的销售记录。
A3:使用函数 A.id() 计算客户 ID 的唯一值集合。再使用符号 "^" 计算两个集合的交集,即在网店和实体店都有消费的客户。