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

如何用SQL计算Table1每行对应Table2的数值总和?

SQL实现每行总和计算的方案

这里提供两种可行的SQL写法来实现你的需求:

方法一:多次左关联表获取数值后相加

这种方式逻辑直观,适合ID列数量固定且不多的场景:

SELECT 
    t1.ID1,
    t1.ID2,
    t1.ID3,
    t1.ID4,
    COALESCE(t2a.Sum, 0) + COALESCE(t2b.Sum, 0) + COALESCE(t2c.Sum, 0) + COALESCE(t2d.Sum, 0) AS Sum
FROM Table1 t1
LEFT JOIN Table2 t2a ON t1.ID1 = t2a.ID
LEFT JOIN Table2 t2b ON t1.ID2 = t2b.ID
LEFT JOIN Table2 t2c ON t1.ID3 = t2c.ID
LEFT JOIN Table2 t2d ON t1.ID4 = t2d.ID;
  • 使用LEFT JOIN保证即便Table1里的ID在Table2中找不到匹配,也不会丢失整行数据
  • COALESCE函数用来处理无匹配的情况,把NULL转为0,避免求和时出现NULL结果

方法二:子查询批量匹配求和

如果后续ID列数量可能变化,这种写法更灵活:

SELECT 
    t1.ID1,
    t1.ID2,
    t1.ID3,
    t1.ID4,
    (
        SELECT SUM(t2.Sum)
        FROM Table2 t2
        WHERE t2.ID IN (t1.ID1, t1.ID2, t1.ID3, t1.ID4)
    ) AS Sum
FROM Table1 t1;
  • 子查询通过IN条件一次性匹配当前行的所有ID,直接计算总和
  • 若存在ID无匹配的情况,SUM会自动忽略这些NULL值,效果等同于将其视为0参与计算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 12:20:36