SQL第一产品和第二产品组合

时间:2017-08-01 20:53:05

标签: sql database

我正在尝试为在这里购物的顾客找到购买商品的首选组合。目前,这段代码告诉我组合的数量,但是这个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 

0 个答案:

没有答案