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

MySQL - count users for each day and count them all

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

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

我需要一个新行,其中包含所有用户的数量。

你可以使用联合:

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

您可以使用 WITH ROLLUP 选项来 GROUP BY。这将向包含总体 COUNT().

的结果集添加一个额外的行

顺便说一句,the DATE() function produces the date from a DATETIME item, such as your add_date column. The DAY() function 生成月份中的第几天。你应该决定你需要哪一个。

我想这个查询会做你想做的。

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