SQL按月分组统计后如何获取所有月度统计值的合计总和?
SQL查询修改方案
你可以根据实际需求选择两种实现方式:
方案1:保留原有月度明细,末尾新增合计行
直接在原有分组语句后加WITH ROLLUP语法即可实现分组结果二次汇总,再用IFNULL处理空的月份名称字段方便识别,修改后代码如下:
SELECT IFNULL(MONTHNAME(mohon_tarikh), '合计') as mname, COUNT(pemohon_id) as total FROM tpermohonan WHERE YEAR(mohon_tarikh) = '2019' GROUP BY MONTH(mohon_tarikh) WITH ROLLUP;
输出效果会在原有12个月份的统计结果最后新增一行合计:
mname total January 3478 February 753 March 840 April 658 May 2388 June 848 July 739 August 621 September 2110 October 1625 November 697 December 964 合计 15721
方案2:仅查询全年合计值
如果不需要月度明细,只需要单独返回总和,直接去掉月份分组逻辑即可,代码如下:
SELECT COUNT(pemohon_id) as 2019年申请总量 FROM tpermohonan WHERE YEAR(mohon_tarikh) = '2019';
输出结果:
2019年申请总量 15721
内容的提问来源于stack exchange,提问作者NAS BS
相关产品推荐
相关产品推荐

