【发布时间】:2017-08-26 17:48:57
【问题描述】:
如何通过按月分组来获取 mySQL 中的总用户数
我想列出按月分组的注册用户总数。
这方面的困难在于,如果任何一个月都没有数据,我想计算一个范围内的所有月份,计数必须为 0。
我的代码
SELECT tots.*, @var := @var + tots.`count` as totalCount
FROM (
SELECT
YEAR(registered) AS `year`,
MONTH(registered) AS `month`,
COUNT(*) AS `count`
FROM user where id = 73
AND registered >= '2017-01-01'
AND registered <= '2017-05-01'
GROUP BY `year`, `month`
)
AS tots, (SELECT @var := 0) AS inc
电流输出
+------+-------+-------+-------------+
| Year | Month | Count | TotalCount |
+------+-------+-------+-------------+
| 2017 | 01 | 1 | 1 |
| 2017 | 04 | 4 | 5 |
+------+-------+-------+-------------+
首选输出
+------+-------+-------+-------------+
| Year | Month | Count | TotalCount |
+------+-------+-------+-------------+
| 2017 | 01 | 1 | 1 |
| 2017 | 02 | 0 | 1 |
| 2017 | 03 | 0 | 1 |
| 2017 | 04 | 1 | 2 |
| 2017 | 05 | 0 | 2 |
+------+-------+-------+-------------+
这里 Count 是该月的新用户总数,TotalCount 是截至该月的用户总数。
NULL 结果是必需的。
如何在 mySQL 或 Laravel PHP 中实现该结果?
【问题讨论】:
-
输出输出输出。来点意见怎么样?
-
@Strawberry 我没听懂你。