我正在尝试为在这里购物的顾客找到购买商品的首选组合。目前,这段代码告诉我组合的数量,但是这个a)不告诉我哪个产品是第一个和第二个购买的,而b)告诉我客户变化频率的所有可能组合。
我目前的数据看起来像这样:
CustomerKey CalendarDate PnLCategory ChannelName
8 2014-06-27 Laptop Online
8 2015-07-01 Mouse Retail
8 2015-12-13 Earphones Online
10 2014-01-10 Headphones Retail
14 2016-01-25 Laptop Online
14 2017-02-18 Mouse Retail
根据这些数据,您可以发现客户通常购买笔记本电脑然后鼠标。此外,您可以告诉客户通常在线购买而不是零售。
我只关心客户的前两笔交易。另外,您如何包含购买产品的渠道?理想情况下,希望能够知道客户在第一个产品和哪个渠道中可能购买的第二个产品。
SELECT A.PnLCategory, B.PnLCategory, COUNT (*) CountForCombination
FROM MyTable3 A
INNER JOIN MyTable3 B
ON A.CustomerKey = B.CustomerKey
AND A.PnLCategory < B.PnLCategory
GROUP BY A.PnLCategory, B.PnLCategory
ORDER BY CountForCombination desc
成功的结果如下所示:
FirstProduct ChannelName1 SecondProduct ChannelName2 #Occurences
Laptop Online Mouse Retail 100
Mouse Retail Headphones Online 50