我正在尝试使用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
答案 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;