2017-06-14 44 views
-2

我有零售店中忠誠度計劃的相關數據。如果客戶在60天內未從商店購買商品,則視爲已失效,並且會發送促銷信息讓他們再次購買商品。連續序列中的每個中斷的增量排名(T-SQL)

我想對他們回來的連續次數以及我們必須給他們多少次晉升做一些分析。

'狂歡'的定義是客戶購買沒有60天休息時間的產品。例如如果客戶一生中每59天購買一次產品,他們只會有1次狂歡。

我正在試圖找到一個簡單的解決方法代碼來獲取下面的輸出。所有的輸入數據已經在一個表中。

輸入數據看起來像這樣

Input

輸出應該是這樣的:

Output

+1

我使用了基於順序

  • 施普雷和連續的購買上有什麼版本的SQL Server? –

  • +4

    不給屏幕截圖提供有用的示例數據 – 2017-06-14 14:58:17

    +0

    SQL Server 2012 – BasicBoy

    回答

    0

    我想你是如下尋找查詢:

    ;With Cte as (
        Select *, Spree = sum(Case when Lapsed = 'Y' and NextLapsed = 'N' then 1 else 0 end) over (partition by Customerid order by PurchaseDate) 
        from (
         Select *, NextLapsed = lead(lapsed) over(partition by customerid order by purchasedate) 
         from #YourCustomer 
        ) a 
    ) 
    Select *, [Consecutive Purchases] = Row_Number() over (partition by customerid, spree order by purchaseDate) 
    from Cte 
    

    一些assumptio NS

    1. 而purchaseDate正在提升,並根據每個客戶
    +0

    謝謝,這非常有幫助! – BasicBoy