【发布时间】:2012-04-04 17:05:58
【问题描述】:
mySQL 总用户数
按月分组
我想列出按月分组的注册用户总数
嗯,这个问题的困难在于我不想要 per 月的计数, 但截至(包括)当月的用户总数数。
用户表结构
+---------------+--------------+------+-------------------+----------------+
| Field | Type | Null | Default | Extra |
+---------------+--------------+------+-------------------+----------------+
| ID | int(11) | NO | NULL | auto_increment |
| email | varchar(225) | NO | NULL | |
................................-CUT-.......................................
| registered | timestamp | NO | CURRENT_TIMESTAMP | |
+---------------+--------------+------+-------------------+----------------+
示例数据
1 example1@mail 2012-04-04 xx:xx:xx
2 example2@mail 2012-05-04 xx:xx:xx
3 example3@mail 2012-05-04 xx:xx:xx
首选输出
+------+-------+-------+
| Year | Month | Count |
+------+-------+-------+
| 2012 | 01 | 0 |
| 2012 | 02 | 0 |
| 2012 | 03 | 0 |
| 2012 | 04 | 1 |
| 2012 | 05 | 3 |
+------+-------+-------+
NULL 结果不是必需的。
如何在纯 mySQL 中实现该结果?
【问题讨论】:
-
我用 COUNT(*) 和 GROUP BY YEAR(
registered), MONTH(registered) 尝试了几个查询。我也做了一个 join 实验,但我还没有达到 mySQL 的高级水平。