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

SQL分组查找SIZEPOS重复的CODE记录时返回重复行问题排查

问题原因

你当前查询出现重复结果的核心问题如下:

  • 你贴出的GROUP BY语句逻辑上本应让相同的(CODE, ITEID, SIZEPOS)组合仅返回1行,若执行后出现重复行,大概率是你实际运行的查询中,SELECT子句额外加入了其他不属于分组维度、也未被聚合的字段,导致分组规则失效,同一组合被拆分为多行返回。
  • 如果你原本的需求是查询所有符合重复条件的原始记录行,当前的分组写法只能返回每个重复组合的聚合结果,无法匹配需求。
修正方案

场景1:仅需要返回每个重复组合的聚合结果

你原本的写法逻辑是正确的,只需要检查SELECT子句中没有多余的非分组、非聚合字段即可,参考语句:

SELECT CODE, ITEID, SIZEPOS, COUNT(SIZEPOS) AS CNT
FROM @SUBSTITUTE
GROUP BY CODE, ITEID, SIZEPOS
HAVING COUNT(SIZEPOS) > 1;

场景2:需要返回所有出现重复的原始记录行

使用窗口函数标记重复行即可实现需求,参考语句:

SELECT CODE, ITEID, SIZEPOS
FROM (
    SELECT 
        CODE, ITEID, SIZEPOS,
        COUNT(*) OVER (PARTITION BY CODE, ITEID, SIZEPOS) AS repeat_cnt
    FROM @SUBSTITUTE
) AS temp
WHERE repeat_cnt > 1;

如果需要对结果去重,只需要在SELECT后加上DISTINCT关键字即可。

内容的提问来源于stack exchange,提问作者Faye D.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 22:36:06