Php 如何获得每月总用户数
如何通过按月分组获得mySQL中的总用户数 我想列出按月份分组的注册用户总数 这方面的困难在于,如果任何一个月内没有数据,我需要一个范围内所有月份的计数,计数必须为0 我的代码 优先输出 这里的Count是当月的新用户总数,TotalCount是当月的总用户数 空结果是必需的Php 如何获得每月总用户数,php,mysql,Php,Mysql,如何通过按月分组获得mySQL中的总用户数 我想列出按月份分组的注册用户总数 这方面的困难在于,如果任何一个月内没有数据,我需要一个范围内所有月份的计数,计数必须为0 我的代码 优先输出 这里的Count是当月的新用户总数,TotalCount是当月的总用户数 空结果是必需的 我如何在mySQL或Laravel PHP中实现这一结果?大概每个月至少有一个用户注册。如果是,您可以使用条件聚合: SELECT tots.*, (@var := @var + tots.`count`) as tota
我如何在mySQL或Laravel PHP中实现这一结果?大概每个月至少有一个用户注册。如果是,您可以使用条件聚合:
SELECT tots.*, (@var := @var + tots.`count`) as totalCount
FROM (SELECT YEAR(registered) AS `year`, MONTH(registered) AS `month`,
SUM( id = 73 ) AS `count`
FROM user
WHERE registered >= '2017-01-01' AND registered <= '2017-05-01'
GROUP BY `year`, `month`
) tots CROSS JOIN
(SELECT @var := 0) AS params;
否则,您需要一个日历表或每月生成一行的方法 大概每个月至少有一个用户注册。如果是,您可以使用条件聚合:
SELECT tots.*, (@var := @var + tots.`count`) as totalCount
FROM (SELECT YEAR(registered) AS `year`, MONTH(registered) AS `month`,
SUM( id = 73 ) AS `count`
FROM user
WHERE registered >= '2017-01-01' AND registered <= '2017-05-01'
GROUP BY `year`, `month`
) tots CROSS JOIN
(SELECT @var := 0) AS params;
否则,您需要一个日历表或每月生成一行的方法 谢谢。这段代码也给出了与我当前输出相同的输出。@Rajeev。所以你有一些年/月组合,没有用户有数据,而不仅仅是用户73。在这种情况下,您需要一个日历表或其他一些方法来生成所有月份。谢谢。这段代码也给出了与我当前输出相同的输出。@Rajeev。所以你有一些年/月组合,没有用户有数据,而不仅仅是用户73。在这种情况下,您需要一个日历表或其他一些方法来生成所有月份。输入一下怎么样?@草莓,我没听清楚。请看输出。有什么意见吗?@草莓,我没听清楚,明白吗
+------+-------+-------+-------------+
| Year | Month | Count | TotalCount |
+------+-------+-------+-------------+
| 2017 | 01 | 1 | 1 |
| 2017 | 02 | 0 | 1 |
| 2017 | 03 | 0 | 1 |
| 2017 | 04 | 1 | 2 |
| 2017 | 05 | 0 | 2 |
+------+-------+-------+-------------+
SELECT tots.*, (@var := @var + tots.`count`) as totalCount
FROM (SELECT YEAR(registered) AS `year`, MONTH(registered) AS `month`,
SUM( id = 73 ) AS `count`
FROM user
WHERE registered >= '2017-01-01' AND registered <= '2017-05-01'
GROUP BY `year`, `month`
) tots CROSS JOIN
(SELECT @var := 0) AS params;