繁体   English   中英

有没有办法获得一年中每个月我的表中有多少行?

[英]Is there a way to get how many rows are in my table for each month of the year?

我想算出每个月有多少用户注册。 我有一个users表,其中包含 dd/mm/yyyy 格式的varchar类型的signUpDate

我写了一个 select 声明,它得到了我这个月有多少注册:

select COUNT(*) as numberOfSignUps from users WHERE STR_TO_DATE(signupDate,'%d/%m/%Y') >= STR_TO_DATE('31/05/2020','%d/%m/%Y')  AND STR_TO_DATE(signupDate,'%d/%m/%Y') <= STR_TO_DATE('30/06/2020','%d/%m/%Y'); 

这很好用,但是有没有办法让 go 回到之前的所有月份,而无需手动添加日期?

所需的结果将是月份的列,其中包含每个月份的注册次数。

您似乎想要group by 我会建议:

select year(signupDate) as year, month(signupDate) as month, COUNT(*) as numberOfSignUps
from users 
group by year, month;

根据您的评论,您应该修复您的数据。 使用正确的数据类型!

同时,只需使用字符串函数:

select right(signupDate, 7) as mmyyyy, COUNT(*) as numberOfSignUps
from users 
group by mmyyyy

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM