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

MySQL如何按指定值分组:合并特定ID并求和

解决方案

我们可以通过条件判断+分组聚合的方式实现需求,以下是两种简洁的MySQL语句写法:

写法一:使用CASE表达式(兼容性更强)

SELECT
    CASE
        WHEN id IN (1, 2) THEN 'special'
        ELSE CAST(id AS CHAR)
    END AS type,
    SUM(amount) AS total_amount
FROM test_table
GROUP BY
    CASE
        WHEN id IN (1, 2) THEN 'special'
        ELSE CAST(id AS CHAR)
    END;

写法二:使用MySQL原生IF函数(更简洁)

SELECT
    IF(id IN (1, 2), 'special', id) AS type,
    SUM(amount) AS total_amount
FROM test_table
GROUP BY type;

逻辑说明

  1. 分组标记:通过CASE或IF将id为1、2的记录统一标记为special,其他id保留原数值(MySQL会自动将数值类型的id转换为字符串,保证和special的类型一致)
  2. 聚合求和:按标记后的type字段分组,对每组的amount执行SUM()求和,得到最终的total_amount

验证结果

执行上述语句后,将得到符合需求的结果:

type     |   total_amount
 -------------------------------
   special   |      50 
   3         |      40   
   4         |      10 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:45:51