По сути, мое требование - за определенный месяц, сколько клиентов имели «предыдущую дату продажи» за 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