SQL技术问询:合并同表指定行并计算总计值的实现方法
解决合并分组与总计求和的SQL方案
没问题,我来帮你搞定这个需求!你需要把private vehicle use和private car use这两类合并成一行,同时汇总它们的计数,这个用CASE语句配合分组聚合就能轻松实现,不用复杂的PIVOT。
修改后的查询语句
SELECT COUNT(m.strEUCategory) AS total, CASE WHEN m.strEUCategory IN ('private vehicle use', 'private car use') THEN 'Private Vehicle Use' ELSE m.strEUCategory END AS measure FROM laqm2_AQAP_measures m WHERE m.strYearIntroduced <= 2020 AND m.strCompletionYear >= 2020 GROUP BY CASE WHEN m.strEUCategory IN ('private vehicle use', 'private car use') THEN 'Private Vehicle Use' ELSE m.strEUCategory END ORDER BY measure;
方案说明
- CASE语句重构分组字段:通过CASE把两个需要合并的类别统一映射为
Private Vehicle Use,其他类别保持原有名称,这样分组时会自动把这两类归为一组。 - 聚合计数自动求和:GROUP BY基于CASE生成的新字段后,COUNT函数会自动把这两类的记录数相加(1+4=5),得到合并后的总计值。
- 排序优化:最后按新的
measure字段排序,让结果更规整。
执行这个查询后,你会得到想要的结果:
| total | measure |
|---|---|
| 5 | Private Vehicle Use |
| 7 | other |
内容的提问来源于stack exchange,提问作者astara303
相关产品推荐
相关产品推荐

