在我的项目中,正在为客户订单的收入/销售额生成月度报告。
这是有关我当前的报告生成方式工作方式的sql小提琴。
每月报表sqlfiddle:http://sqlfiddle.com/#!9/2ca03a/7

查询月度报告:

SELECT SUM(price) as `Ordered total $`, date_created,
DATE_FORMAT(date_created, '%X - %b') as `Month`, COUNT(*) as `Total Orders`
FROM orders WHERE class_id IN (1,2)
GROUP BY DATE_FORMAT(date_created, '%X-%m');


现在,我需要对其进行修改以按季度而不是按月生成报告。

我发现我可以使用mysql quarter()函数。我试过使用它,但是没有按预期工作。
这是我尝试过的季度sqlfiddle的内容:http://sqlfiddle.com/#!9/2ca03a/6

查询我尝试过的季度报告:

SELECT SUM(price) as `Ordered total $`, date_created,
 quarter(date_created) as `Quarter`,
 COUNT(*) as `Total Orders`
 FROM orders WHERE class_id IN (1,2)
 GROUP BY
 quarter(date_created);


如您在我的第二个sqlfiddle中所见,mysql quarter()函数没有获得所有年份的季度记录。

有什么方法可以修改DATE_FORMAT()功能以获取季度报告?或如何使用mysql的quarter()功能?

最佳答案

您可以使用YEAR()函数获取从日期开始的年份,然后使用CONCAT到季度获取的年份/季度值,可以将其分组:

SELECT SUM(price) as `Ordered total $`, date_created,
CONCAT(YEAR(date_created), ' - ', QUARTER(date_created)) as `Quarter`,
COUNT(*) as `Total Orders`
FROM orders WHERE class_id IN (1,2)
GROUP BY `Quarter`


Updated SQLFiddle

关于mysql - mysql:使用通过DATE_FORMAT或Quarter()函数在季度报告中创建的日期进行分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55565638/

10-12 17:23