如何提取连续两个月登录的用户数

时间:2017-05-15 22:19:18

标签: sql postgresql

我正在尝试使用postgresql连续两个月登录该应用的用户数,并将结果列为

Month    NBR_USERS
JAN      users who logged on in Dec 2016 as well as Jan 2017
FEB      users who logged on in Jan 2017 and Feb 2017
MAR      users who logged on in Feb 2017 and Mar 2017

1 个答案:

答案 0 :(得分:0)

您可以通过按用户和月份汇总数据然后按月汇总来完成此操作:

select to_char(yyyymm, 'YYYY-MM') as yyyymm, count(*) as num_users       
from (select userid, date_trunc('month', visitdate) as visitmonth,
             lag(date_trunc('month', visitdate)) over (partition by userid order by date_trunc('month', visitdate)) as prev_visitmonth
      from t
      group by userid, visitmonth
     ) t
where prev_visitmonth = visitmonth - interval '1 month'
group by yyyymm
order by yyyymm;