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

cngwdvgl  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(375)

我想计算出多少用户注册,我已经在每个月。我有一个 users 包含 signUpDate 类型 varchar 以dd/mm/yyyy格式。
我写了一份精选声明,其中列出了我这个月的注册人数:

  1. 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');

这很好,但是有没有一种方法可以在不手动添加日期的情况下回顾以前的所有月份?
期望的结果是每个月的列,每个列都有注册的数量。

to94eoyn

to94eoyn1#

你好像想要 group by . 我建议:

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

根据你的评论,你应该修正你的数据。使用正确的数据类型!
同时,只需使用字符串函数:

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

相关问题