查找每月重复的用户

我下面有这样的数据

第一个月的交易

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

需要从上个月的数据中查找本月的重复用户。根据我的数据,当前月份为2月,上个月为1月。

根据我的数据,我需要得到低于输出的值

用户ID 1234,5657在1月和2月进行了交易

输出:

-----------
Month count
Feb     2
xiangan2010 回答:查找每月重复的用户

将日期转换为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

添加计数,必要时可按月总计

本文链接:https://www.f2er.com/3156087.html

大家都在问