mysql - 使用 DATE_FORMAT() 和 IN 获取总和
问题描述
我有一个看起来有点像这样的查询:
SELECT sum(X) as qty
FROM ...
WHERE ...
AND DATE_FORMAT(date,'%Y%m%d') IN (20100601,20100701,20100801,20100901,20101001)
这显然给了我一个看起来像这样的结果:
qty
226761
但我想要得到的是每个单独日期格式的数量:
qty date
16000 20100601
57000 20100701
23000 20100801
30000 20100901
72000 20101001
我是 SQL 新手,所以我不知道如何获取该特定格式。我只是在寻找算法的帮助,你可以使用我不介意的随机表名或行名。我希望我的问题很清楚!
解决方案
你需要一个GROUP BY
:
SELECT date(date), sum(X) as qty
FROM ...
WHERE ... AND
date(date) IN ('2010-06-01', '2010-07-01', '2010-08-01', '2010-09-01', '2010-10-01')
GROUP BY date(date);
你会注意到我删除了date_format()
. 将日期转换为字符串是一个坏习惯,没有必要这样做。如果date
没有时间组件(如其名称所示),则date()
甚至不需要。
编辑:
的使用date_format()
表明您的日期存储为dates。如果这不是真的,那么您可以简单地执行以下操作:
SELECT date, sum(X) as qty
FROM ...
WHERE ... AND
date IN ('20100601', '20100701', '20100801', '20100901', '20101001')
GROUP BY date;
如果日期是数字,请去掉单引号。
推荐阅读
- firefox - 为什么此 Firefox 扩展代码不适用于 contextMenus 的提示或警报?
- node.js - 在 discord.js 上制作 .env 文件和修改代码
- cassandra - 在 cassandra 中保存对象数组
- javascript - 必须使用地址门牌号进行正则表达式验证
- wordpress - 在 woocommerce_after_checkout_validation 中刷新结帐
- python - 在管理页面中查看教师模型下的用户模型,该模型与 Django 中的用户具有一对一的关系
- ios - 使用 AVAudioEngine 从内存中播放立体声音频缓冲区
- python - Python 子测试参数
- anylogic - 从 main 访问资源单元代理变量
- amazon-web-services - AWS Lambda 函数在查询 Athena 时失败