[英]Group sql query into quarterly results
我正在尝试将一组结果分组为季度结果。 到目前为止,我已经设法提出了该查询,该查询按月显示视图:
SELECT DATE_FORMAT(post_date, '%b-%y') AS Month, SUM(views) AS Views
FROM $table
WHERE `property_id` = $property_id
GROUP BY DATE_FORMAT(post_date, '%b-%y')
ORDER BY `post_date` ASC
...这给了我如下数据:
Month Views
Jan-16 331
Feb-16 390
Mar-16 431
Apr-16 430
May-16 364
Jun-16 360
Jul-16 459
Aug-16 356
Sep-16 530
Oct-16 435
Nov-16 376
Dec-16 362
我不确定如何对它们进行分组,以便包括三个月在内的那个季度末的观点和产出进行统计。 例如,使用上面的数据:
Month Views
Mar-16 1152
Jun-16 1154
Sep-16 1345
Dec-16 1173
任何建议表示赞赏,谢谢。
更新感谢Thorsten Kettner解决了这个问题。 我还将以下内容添加到他的解决方案中,以按月格式获取我需要的列,如下所示:
SELECT DATE_FORMAT(MAX(post_date), '%b-%y') AS Month, QUARTER(post_date), SUM(views) AS Views
FROM $table
WHERE property_id = $property_id
GROUP BY YEAR(post_date), QUARTER(post_date)
ORDER BY YEAR(post_date), QUARTER(post_date)
可以用月份数的整数除法来计算季度:
SELECT YEAR(post_date), (MONTH(post_date) - 1) DIV 3 + 1 as quarter, SUM(views) AS Views FROM $table WHERE property_id = $property_id GROUP BY YEAR(post_date), (MONTH(post_date) - 1) DIV 3 + 1 ORDER BY YEAR(post_date), (MONTH(post_date) - 1) DIV 3 + 1;
正如Khalid Junaid先生所说:为此,存在一个函数QUARTER
:
SELECT YEAR(post_date), QUARTER(post_date), SUM(views) AS Views
FROM $table
WHERE property_id = $property_id
GROUP BY YEAR(post_date), QUARTER(post_date)
ORDER BY YEAR(post_date), QUARTER(post_date);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.