获取按月和年分组的mysql表中的行总数

时间:2015-04-12 05:05:11

标签: mysql date count group-by sum

我想创建一些统计数据,我希望它们按数月和数年分组排列。

获得带有table_users列的MySQL user_id。 我想建立一个mysql查询来列出每个月末我们总共有多少成员。查询结果应为:

 Year:   Month:    Members:
 --------------------------
 2014     12        11345
 2015      1        17939
 2015      2        25003
 2015      3        32667

添加user_id时,还有一个带有UNIX时间戳的列user_signupdate。无论我到目前为止尝试过什么,我只得到了user_id的增长,但我想获得每个月和每年所有user_id的总和。

是否可以仅使用一个MySQL查询对此进行计数和分组?

1 个答案:

答案 0 :(得分:1)

以下代码将执行简单的算术计算以生成运行总计的成员。请参阅SQL Fiddle demo

select 
t1.year,
t1.month,
(@rtotal := @rtotal + t1.members) AS members
from 
(select year(user_signupdate) as year, month(user_signupdate) as month, count(user_id) as members
from table_users
group by year(user_signupdate), month(user_signupdate)
order by year(user_signupdate), month(user_signupdate)) as t1, (Select @rtotal:=0) as rt