Отображение количества клиентов в месяц, у которых была предыдущая Дата продажи> 3 месяцев, и количества клиентов, у которых есть «Дата продажи» в данном месяце - PullRequest
0 голосов
/ 04 октября 2019

По сути, мое требование - за определенный месяц, сколько клиентов имели «предыдущую дату продажи» за 3 месяца до данного месяца, а у скольких из них «дата продажи» в данном месяце.

Я пытался использовать функцию Lag, но мой столбец «Reactivation_Ghest» всегда дает мне нулевое значение.

 SELECT datepart(month,["sale date"]) `"Sale_Month",count(distinct 
["user id"]) "Lost_Guests",
lag("Guests",4) OVER (ORDER BY "Sale_Month")+
lag("Guests",5) OVER (ORDER BY "Sale_Month")+
lag("Guests",6) OVER (ORDER BY "Sale_Month")+
lag("Guests",7) OVER (ORDER BY "Sale_Month")+
lag("Guests",8) OVER (ORDER BY "Sale_Month")+
lag("Guests",9) OVER (ORDER BY "Sale_Month")+
lag("Guests",10) OVER (ORDER BY "Sale_Month")+
lag("Guests",11) OVER (ORDER BY "Sale_Month")+
lag("Guests",12) OVER (ORDER BY "Sale_Month") "Reactivated_Guests"
group by "Sale_Month"
order by "Sale_Month"

Мой ожидаемый результат - число гостей в месяц, у которых была предыдущая «Продажа»дата "больше, чем за 3 месяца до данного месяца (Lost_Ghest), и у этих клиентов у кого есть" дата продажи "в данном месяце (Reactivation_Ghest)

Ожидаемый результат:

Sale_Month     Lost_Guests                     Reactivated_Guests
              (prev Sale date > 3 months)  (Prev Sale date > 3 months and 
                                            have a Sale date in given month)
  June         1,200                            110
  July         1,800                            130
  Aug          1,900                            140

Фактический результат:

Sale_Month     Lost_Guests      Reactivated_Guests

  June         1,200               null
  July         1,800               null
  Aug          1,900               null

Пример данных:

Customer      Sale Date
AAAAA        11/15/2018
BBBBB        11/16/2018
CCCCC         9/23/2018
CCCCC         1/25/2019  
AAAAA         3/16/2019    ----> so for given month of March, AAAAA to be 
CCCCC         3/18/2019          considered in "Lost_Guests"  because 
                                 AAAAA's previous sale date (11/15/2018)is
                                 more than 3 months from the given month 
                                (March - 2019) and AAAAA to be considered 
                                in  "Reactivated_guests" because AAAAA has 
                                Sale date in the given month (March-2019) 


                           ----> for given month of March, CCCCC shall not 
                                 be considered in "Lost guests" and
                                 "Reactivated Guests" because 
                                 previous sale date (1/25/2019) is less 
                                 than 3 months from given month (March- 
                                 2019)and hence does not appear in 
                                 "Reactivated_Guests" as well
...