SQL中每个季度+年的增长超过我的用户表

时间:2017-06-13 12:12:00

标签: mysql sql

我正在使用MYSQL,我有一个用户数据库表,用于存储我的注册用户。我很想知道有多少用户在每个季度增加的时间表上注册。所以也许2016年第一季度我总共有1000个用户,然后在2016年第二季度我有2000个用户注册,在2016年第三季度有4000个用户注册等等(所以我希望看到增加,而不是每个季度注册多少)

从另一个Stack Overflow帖子中,我能够创建一个查询,以便每天查看它:

select u.created, count(*)
from (select distinct date(DateCreated) created from `Users`) u
join `Users` u2 on u.created >= date(u2.DateCreated)
group by u.created

这适用于每一天,但我现在想按季度和年份进行分组。我尝试在mysql中使用QUARTER(d)函数,甚至QUARTER(d)+ YEAR(d)来连接它但我仍然无法正确获取数据(count(*)最终会产生非常高的值)。 / p>

有人能帮助我按季度/年分组我的数据吗?我的timestamp列叫做DateCreated(它是一个unix时间戳,以毫秒为单位,所以我也要除以1000)

非常感谢

1 个答案:

答案 0 :(得分:2)

我建议使用相关子查询 - 这允许您轻松定义结果集中的每一行。我认为这是你想要的逻辑:

select dates.yyyy, dates.q,
       (select count(*)
        from Users u
        where u.DateCreated < dates.mindc + interval 3 month
       ) as cnt
from (select year(DateCreated) as yyyy, quarter(DateCreated) as q 
             min(DateCreated) as mindc
      from Users u
      group by year(DateCreated), quarter(DateCreated)
     ) dates;