MySQL - 计算每天的用户数并计算所有用户数

时间:2016-08-23 10:03:24

标签: mysql datetime aggregate-functions

是否可以计算每天的新用户数并计算同一查询中表中的所有用户? 此查询正在运行(它每天计算用户数),我只需要添加计算所有用户的部分。

SELECT COUNT(iduser) as newUsers, add_date
FROM cs_user
GROUP BY DAY(add_date)

示例我需要:

 newUsers   add_date    
1   2016-05-05 17:33:49
5   2016-03-10 16:44:33
2   2016-04-15 19:50:42
5   2016-05-16 18:46:52
6   2016-04-18 15:01:34
1   2016-03-21 23:50:40
2   2016-03-22 18:22:48
3   2016-03-23 22:02:45
2   2016-03-25 16:38:56
15  2016-04-27 18:05:43
3   2016-04-29 04:54:05
23  2016-03-30 17:27:26

我需要一个新行,它应该写出所有用户的数量。

2 个答案:

答案 0 :(得分:4)

您可以使用WITH ROLLUP选项GROUP BY。这将在结果集中添加一个额外的行,其中包含整体COUNT()

顺便说一下,the DATE() function会从DATETIME项生成日期,例如您的add_date列。 The DAY() function生成该月的某一天。你应该决定你需要哪一个。

我认为这个查询会做你想要的。

SELECT COUNT(iduser) as newUsers, DATE(add_date) day
  FROM cs_user
 GROUP BY DATE(add_date) WITH ROLLUP

答案 1 :(得分:2)

你可以使用union:

SELECT COUNT(iduser) as newUsers, add_date
FROM cs_user
GROUP BY DAY(add_date)

UNION ALL
SELECT   COUNT(iduser) as newUsers, NOW()
FROM cs_user