无法计算不同时间跨度的登录次数

时间:2015-06-19 17:33:51

标签: mysql sql

您好我在实施查询以计算不同时间跨度(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;

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;