首页 > 数据库 > mysql教程 > SQL中如何根据多列高效识别重复记录?

SQL中如何根据多列高效识别重复记录?

Patricia Arquette
发布: 2025-01-04 19:11:39
原创
824 人浏览过

How to Efficiently Identify Duplicate Records Based on Multiple Columns in SQL?

识别多列中的重复记录

提出的挑战是复制所提供的 SQL 代码的功能,旨在识别和检索基于两列(即“名称”和“城市”)组合的重复记录。目标是排除只有一列(“名称”或“城市”)匹配的情况,并且仅考虑两列相同的记录。

为了满足此要求,提供的答案利用子查询来计数“stuff”表中“name”和“city”组合的出现次数。此子查询对按“name”和“city”分组的行进行计数,并过滤掉那些计数大于 1 的组合(表示重复项)。

select name, city, count(*) as qty
from [stuff]
group by name, city
having count(*) > 1
登录后复制

然后主查询连接原始“stuff”表与子查询结果匹配“名称”和“城市”。此连接操作有效地识别满足指定条件的重复记录。最终结果通过排除只有一列匹配的情况来消除误报。

select s.id, t.*
from [stuff] s
join (
...
    select name, city, count(*) as qty
    from [stuff]
    group by name, city
    having count(*) > 1
) t on s.name = t.name and s.city = t.city
登录后复制

因此,查询成功检索所需的输出:

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris
登录后复制

此方法提供了一种高效的方法基于多列识别重复记录的通用解决方案,确保查询结果的准确性和完整性。

以上是SQL中如何根据多列高效识别重复记录?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板