如何编写MySQL查询合并本年数据与上年Q4数据并按管辖地汇总里程
正确MySQL查询方案
实现逻辑
- 第一步:筛选符合要求的所有数据:包含2021年全年数据、2020年第四季度数据
- 第二步:按管辖地
jurisdiction分组,对分组内的total_miles字段做求和聚合 - 第三步:可选按管辖地排序方便查看结果
最终查询语句
SELECT jurisdiction, SUM(total_miles) AS total_miles FROM test_a WHERE year = '2021' OR (year = '2020' AND quarter = '4') GROUP BY jurisdiction ORDER BY jurisdiction ASC;
灵活适配动态年份方案(可选)
如果不想写死固定年份,可适配查询当前年份+上年Q4的数据,语句如下:
SELECT jurisdiction, SUM(total_miles) AS total_miles FROM test_a WHERE year = YEAR(NOW()) OR (year = YEAR(NOW()) - 1 AND quarter = '4') GROUP BY jurisdiction ORDER BY jurisdiction ASC;
原语句问题说明
你之前的查询使用了DISTINCT,仅会返回去重后的管辖地和对应单条里程记录,没有对同一管辖地的多季度里程做聚合计算,也没有合并两个查询的结果集做汇总,因此无法得到合计值。
内容的提问来源于stack exchange,提问作者user3187352
相关产品推荐
相关产品推荐

