Найти повторных пользователей из месяца в месяц - PullRequest
1 голос
/ 06 ноября 2019

У меня есть такие данные ниже

Транзакция за первый месяц

User_id        trsaction_completed_date               user_type
 1234       7-Jan-19                New 
 5657       8-Jan-19                New 
 7890       9-Jan-19                                New 
 98456         20-Jan-19                                new

Транзакция за второй месяц

User_id         trsaction_completed_date         user_type 
1234            4-Feb-19         Existing 
5657            5-Feb-19         Existing 
567567          2/13/2019         New

Необходимо найти повторных пользователей за текущий месяциз данных предыдущего месяца. Согласно моим данным, текущий месяц - февраль, а предыдущий месяц - январь.

Согласно моим данным, мне нужно получить значение ниже:

Идентификатор пользователя 1234,5657, как и в январе,Фев

Выход:

-----------
Month count
Feb     2

1 Ответ

1 голос
/ 06 ноября 2019

После преобразования даты в формат yyyy-MM-dd вы можете подсчитывать пользовательские транзакции за месяцы, используйте lag (), чтобы получить счет за предыдущий месяц.

select month, user_id 
from
(
select month, user_id , cnt, 
      lag(cnt) over(partition by user_id order by month) prev_month_cnt
(
select month(trsaction_completed_date) as month, user_id 
       count(*) cnt
  from transaction_table 
 where trsaction_completed_date between '2019-01-01' and '2019-02-28'
 group by month(trsaction_completed_date), user_id 
)s
)s where month='02' --Feb users
     and  prev_month_cnt>0 --available in previous month

Добавьте счетчик, если необходимо, чтобы получить общее количество за месяц

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...