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

MySQL中如何修改现有表合并重复行并累加Qty列?

MySQL合并重复行并累加Qty(原表直接修改)

操作步骤(假设表名为your_table,需替换为实际表名)

  1. 添加临时主键(若表无唯一标识列)
    如果你的表没有主键或唯一非重复列,先添加一个自增临时列来区分每一行:

    ALTER TABLE your_table ADD COLUMN temp_id INT AUTO_INCREMENT PRIMARY KEY;
    
  2. 更新保留行的Qty为累加总和
    对Account、Name、Item分组统计总Qty,将每组中临时ID最小的行的Qty更新为总和:

    UPDATE your_table t1
    JOIN (
        SELECT Account, Name, Item, SUM(Qty) AS total_qty
        FROM your_table
        GROUP BY Account, Name, Item
    ) t2 ON t1.Account = t2.Account AND t1.Name = t2.Name AND t1.Item = t2.Item
    SET t1.Qty = t2.total_qty
    WHERE t1.temp_id = (
        SELECT MIN(temp_id) FROM your_table WHERE Account = t1.Account AND Name = t1.Name AND Item = t1.Item
    );
    
  3. 删除重复行
    删除每组中临时ID不是最小的重复行:

    DELETE t1 FROM your_table t1
    JOIN your_table t2 ON t1.Account = t2.Account AND t1.Name = t2.Name AND t1.Item = t2.Item
    WHERE t1.temp_id > t2.temp_id;
    
  4. 移除临时列(可选)
    若不需要临时列,执行以下语句删除:

    ALTER TABLE your_table DROP COLUMN temp_id;
    

注意事项

  • 操作前务必备份数据:UPDATE和DELETE操作不可逆,建议先导出表数据或创建备份表。
  • 若表已有主键或唯一非重复列,可直接用该列替代temp_id,无需添加临时列。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:50:43