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

SQL关联查询Score求和异常问题排查(含表结构及SQL代码)

解决Table1与Table2关联后Score求和的问题

嘿,我看到你在关联table1和table2计算score总和时遇到了麻烦,你的原始SQL存在几个语法问题,导致没法得到正确结果。咱们来梳理一下,给出可行的解决方案:

问题分析

你的需求是:通过id关联table1和table2,计算每个id对应的score总和,最终输出code、id和对应总分数。但你的SQL里有重复的from、groupby拼写错误(正确写法是GROUP BY),而且子查询里的聚合结果没起别名,这些都会导致执行报错或者结果不符合预期。

正确的SQL实现

SELECT 
    t1.code,
    t1.id,
    p.total_score AS score
FROM table1 t1
INNER JOIN (
    -- 先计算table2中每个id的score总和
    SELECT id, SUM(score) AS total_score
    FROM table2
    GROUP BY id
) p ON t1.id = p.id
ORDER BY t1.code;

代码说明

  1. 子查询处理求和:首先对table2按id分组,用SUM(score)计算每个id的总分数,并给这个结果起别名total_score,得到一个包含id和对应总分的临时结果集p。
  2. 关联两张表:用INNER JOIN把table1和临时结果集p通过id字段关联起来,这样就能把table1里的code、id和对应的总分一一对应上。
  3. 排序优化:最后加上ORDER BY t1.code,让结果按照code排序,和你期望的输出格式完全匹配。

测试结果

运行上面的SQL后,你会得到想要的输出:

codeidscore
11234560
16753350
28765477
36543267

小补充:如果table1里存在某些id在table2中没有对应记录的情况,你可以把INNER JOIN换成LEFT JOIN,此时这些id对应的score会显示为NULL,你可以根据实际业务需求选择合适的关联方式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:23:17