You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL如何按指定值对行分组 手动合并指定分类并求和Value字段

SQL实现自定义合并分类后分组聚合

场景说明

  • 待处理表包含Name、Value两个字段
  • 原始数据对应关系:
    • German → Value=4
    • French → Value=1
    • FrenchSecond → Value=1
    • English → Value=2
  • 预期效果:将FrenchSecond手动合并入French分类,按合并后的分类维度对Value求和,最终输出统计结果:German=4、French=2、English=2

实现方案

核心逻辑是用CASE WHEN表达式先对原始Name字段做自定义值映射,把需要合并的枚举值统一映射为目标分类名,再基于映射后的分类字段做SUM聚合即可,以下是兼容绝大多数SQL方言的写法:

SELECT
    -- 自定义分类映射规则
    CASE
        WHEN Name = 'FrenchSecond' THEN 'French'
        ELSE Name
    END AS merged_category,
    SUM(Value) AS sum_value
FROM your_actual_table -- 替换为实际使用的表名
GROUP BY
    -- 和SELECT里的映射规则保持一致,保证全SQL环境兼容
    CASE
        WHEN Name = 'FrenchSecond' THEN 'French'
        ELSE Name
    END;

如果你使用的数据库支持在GROUP BY中引用SELECT阶段定义的别名(如MySQL、高版本PostgreSQL),可以把GROUP BY部分简化为GROUP BY merged_category,减少重复代码。

扩展说明

如果后续有更多需要合并的分类,只需要在CASE WHEN块中新增判断分支即可,例如需要把US、USA都合并为United States分类,直接加一行WHEN Name IN ('US', 'USA') THEN 'United States'就能实现。

内容的提问来源于stack exchange,提问作者TesterOfD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:54:20