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 张桌子,salessale_items

sales 有列:sale_idstatus

sale_items 有以下列:sale_iddate_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 个月的数量的主要内容,如果未能解决你的问题,请参考以下文章

按月查询获取前n个月的平均值

mysql 如何按月分组查询出当前年度每个月的短信数量(数据库中这个月要是为空的话就用0条怎么显示出来)

按月分组的运行计数以汇总销售额

php+mysql中怎么查询最近12个月每个月的数据

如何从当前日期 PHP 获取最近 7 周、7 个月的日期范围?

mysql计算行并按月分组[重复]