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

如何去除SQL查询结果中含重复item的数据行

问题说明

当前查询语句:

select item_display_name 
from all_requirements 
where state = 'submitted_pending' and id = 'mNAr9viL4='

执行返回2条重复的'id proof',本质是where条件匹配到了2行数据,两行的item_display_name值一致但document_id值不同,数据库会默认返回所有符合过滤条件的行,不会自动做去重处理。

实现方法

要得到去重后的唯一item_display_name,有两种标准实现方案:

  • 使用DISTINCT关键字(当前场景优先选择)
    DISTINCT的作用就是对查询返回的结果集按指定列去重,修改后的语句如下:
    SELECT DISTINCT item_display_name 
    FROM all_requirements 
    WHERE state = 'submitted_pending' AND id = 'mNAr9viL4='
    
    写法简洁,语义明确,就是提取唯一的展示名称,执行后只会返回单条'id proof'结果,完全匹配需求。
  • 使用GROUP BY分组(适合后续需要扩展聚合计算的场景)
    按目标字段分组也可以实现去重效果,语句如下:
    SELECT item_display_name 
    FROM all_requirements 
    WHERE state = 'submitted_pending' AND id = 'mNAr9viL4='
    GROUP BY item_display_name
    
    如果后续需要统计同一个展示名关联了多少份不同文档,只需要在select子句中增加COUNT(DISTINCT document_id) AS related_doc_count这类聚合函数即可,扩展性更强。

避坑提醒:不要直接加LIMIT 1实现“只返回一条”的效果。当前场景下两条结果的展示名一致,加LIMIT 1看似能得到正确结果,但如果后续出现同过滤条件下对应多个不同展示名的异常数据,LIMIT 1会随机返回其中一条,会导致业务逻辑出现隐蔽错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 12:27:25