mysql查询从1自动计数_MySQL查询每月获取计数

这篇博客讲述了如何使用MySQL查询获取过去12个月每个月的用户注册数量,包括创建一个显示所有月份计数(即使为0)的完整列表。通过LEFT JOIN和子查询组合,实现了即使某月没有注册记录也能显示计数为0的结果。
摘要由CSDN通过智能技术生成

我有一个供用户使用的表,该表具有一个名为“ created”的字段,该字段具有注册日期。

如何获得包含过去12个月每月注册数量计数的列表?像这样:

Month Count

1 1232

2 2222

3 122

4 4653

... ...

12 7654

我不习惯使用mysql,所以直到现在,我只知道如何计算去年的注册数量,而不是如何按最近12个月的数量进行分组。提前致谢!

更新

现在,我使用@fthiella解决方案来得到这个:

+------------------------------+-------------------------------+----------+

| Year(FROM_UNIXTIME(created)) | Month(FROM_UNIXTIME(created)) | Count(*) |

+------------------------------+-------------------------------+----------+

| 2012 | 4 | 9927 |

| 2012 | 5 | 5595 |

| 2012 | 6 | 4431 |

| 2012 | 7 | 3299 |

| 2012 | 8 | 429 |

| 2012 | 10 | 3698 |

| 2012 | 11 | 6208 |

| 2012 | 12 | 5142 |

| 2013 | 1 | 1196 |

| 2013 | 2 | 10 |

+------------------------------+-------------------------------+----------+

我如何强制查询给我计数为0的月份?

@fthiella解决方案(非常感谢!):

SELECT y, m, Count(users.created)

FROM (

SELECT y, m

FROM

(SELECT YEAR(CURDATE()) y UNION ALL SELECT YEAR(CURDATE())-1) years,

(SELECT 1 m UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4

UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8

UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12) months) ym

LEFT JOIN users

ON ym.y = YEAR(FROM_UNIXTIME(users.created))

AND ym.m = MONTH(FROM_UNIXTIME(users.created))

WHERE

(y=YEAR(CURDATE()) AND m<=MONTH(CURDATE()))

OR

(yMONTH(CURDATE()))

GROUP BY y, m;

结果:

+------+----+----------------------+

| y | m | Count(users.created) |

+------+----+----------------------+

| 2012 | 5 | 5595 |

| 2012 | 6 | 4431 |

| 2012 | 7 | 3299 |

| 2012 | 8 | 429 |

| 2012 | 9 | 0 |

| 2012 | 10 | 3698 |

| 2012 | 11 | 6208 |

| 2012 | 12 | 5142 |

| 2013 | 1 | 1196 |

| 2013 | 2 | 10 |

| 2013 | 3 | 0 |

| 2013 | 4 | 0 |

+------+----+----------------------+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值