您好我在实施查询以计算不同时间跨度(3个月,6个月,1年等)的登录计数时遇到问题
我有两张桌子:
表X
MAIN LASTLOGIN
表Y
MAIN USERID LASTLOGIN
我想根据用户ID返回过去3个月,过去6个月,过去1年的登录次数。
结果表
USERID LOGINCOUNT(3MONTHS) LOGINCOUNT(6MONTHS) LOGINCOUNT(1YEAR)
我能够成功实现以下查询,该查询仅提供过去3个月的登录计数。如何获得6个月和1年的其他两列。
我的查询是:
select Y.userid, count(x.lastlogin) AS COUNT_3MONTHS
from
X
inner join
Y
on X.MAIN = Y.MAIN
where X.LASTLOGIN > current_date - interval '90' day
group by 1;
答案 0 :(得分:0)
使用条件聚合:
select Y.userid,
sum(X.LASTLOGIN > current_date - interval 3 month) as COUNT_3MONTHS,
sum(X.LASTLOGIN > current_date - interval 6 month) as COUNT_6MONTHS,
sum(X.LASTLOGIN > current_date - interval 1 year) as COUNT_1YEAR
from X inner join
Y on
X.MAIN = Y.MAIN
group by userid;