MySQL 获取按月分组的过去 12 个月的数量
Posted
技术标签:
【中文标题】MySQL 获取按月分组的过去 12 个月的数量【英文标题】:MySQL get quantities from last 12 months grouped by month 【发布时间】:2016-10-08 09:26:20 【问题描述】:我正在尝试用 php 编写 mysql SELECT 语句。
我有 2 张桌子,sales
和 sale_items
。
sales 有列:sale_id
、status
sale_items 有以下列:sale_id
、date_added
(DATETIME)、quantity
我需要返回 sale_items
的数量,过去 12 个月按月分组,sales
中相应行的 status
等于“已完成”(如您所见,@987654333 @ 和sale_items
可以加入sale_id
)。
我已尝试修改以下两项以满足我的需要,但没有成功:
MySQL monthly Sale of last 12 months including months with no Sale
Mysql sum for last 12 months
【问题讨论】:
【参考方案1】:很容易你可以使用 MySQL MONTH() 函数和 GROUP BY caluse。
SELECT SUM(SI.quantity),MONTH(SI.date_added)
FROM sale_items SI
JOIN sales S
ON S.id=SI.sale_id
WHERE S.status = 'completed'
GROUP BY MONTH(SI.date_added);
【讨论】:
嗯,这对数据集做出了确定的、严肃的假设 我假设您在谈论日期字段,不是吗? 是的,date_added
字段是用于分组的字段,我会尽快尝试一下
工作的乐趣,不敢相信我认为这会比原来更难【参考方案2】:
SELECT COUNT(quantity),MONTH(SI.date_added)
FROM sale_items SI
JOIN sales S
ON S.id=SI.sale_id
WHERE S.status = 'completed'
GROUP BY MONTH(SI.date_added);
【讨论】:
虽然这段代码 sn-p 可以解决问题,including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。 好的,下次抱歉,我会解释更多。以上是关于MySQL 获取按月分组的过去 12 个月的数量的主要内容,如果未能解决你的问题,请参考以下文章
mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)