mysql - SQL 日期范围按月返回多行
问题描述
我希望按月获得条目数。但是,这将返回总计数。
select count(*) from TBL_NAME
where (dateAdded between '2020-01-01 00:00:00' and '2020-01-31 23:59:59') or
(dateAdded between '2020-02-01 00:00:00' and '2020-02-29 23:59:59');
我希望它是这样的。
月 ----- 计数
一月----500
二月----600
如果我不能在那里得到月份,那很好,但我肯定想要它,这样计数就有自己的行。这样的事情是如何实现的?
解决方案
这是一个直接聚合查询,您想计算每个月存在多少条记录。
你可以做:
select
date_format(dateAdded, '%Y-%m-01') start_of_month,
count(*) cnt
from tbl_name
where dateAdded >= '2020-01-01' and dateAdded < '2020-03-01'
group by start_of_month
第一列为您提供了汇总数据的月份的第一天 - 这似乎比月份名称更相关。
推荐阅读
- python - 合并熊猫数据框并保留合并标准不匹配的行
- python - os.system 和 subprocess.run 使我的多线程进程冻结,直到调用结束
- ubuntu - 如何从没有 root(sudo) 权限的用户空间运行 rmmod
- terraform - 在 Terraform 上使用 Helm 图表时的 RBAC 授权
- asp.net - 标签显示为字符串数组,而不是单独的
- javascript - 如何聚焦当前标签木偶
- javascript - 角 currentTarget 访问属性
- c# - 如何使用 ASP.NET Core 将查询字符串参数转换为看起来像目录部分?
- git - 如何从 GitHub 存储库中的环境中删除 github-pages?
- python - 如何使用 2 列作为条件删除 Pandas Dataframe 中的行?