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

两个SQL分组查询结果左连接后数据异常,如何编写正确查询语句

你编写的语句存在执行逻辑错误:先做表关联、再执行聚合计算,如果同一个parte在lx02表中存在多条匹配的material记录,关联操作会生成大量重复行,最终导致sum(cantidad)、sum(totalStock)的计算结果被重复计数,远超出预期。

正确的处理逻辑是先分别对两个表做分组聚合,保证两个结果集内关联键(parte/material)唯一后,再执行左连接操作,参考语句如下:

SELECT 
  t1.parte,
  t1.sum_cantidad,
  t2.material,
  t2.sum_totalStock
FROM (
  -- 提前聚合directoscount表数据
  SELECT parte, SUM(cantidad) AS sum_cantidad 
  FROM `directoscount` 
  WHERE deleted_at IS NULL 
  GROUP BY parte
) t1
LEFT JOIN (
  -- 提前聚合lx02表数据
  SELECT material, SUM(totalStock) AS sum_totalStock 
  FROM lx02 
  GROUP BY material
) t2 ON t1.parte = t2.material

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 07:09:05