首页 > 数据库 > mysql教程 > 如何在 SQL 中查找多列中的重复行?

如何在 SQL 中查找多列中的重复行?

Patricia Arquette
发布: 2025-01-03 16:14:39
原创
821 人浏览过

How to Find Duplicate Rows Across Multiple Columns in SQL?

查找多列中的重复项

在 SQL 中,您可能会遇到需要识别多列中具有重复值的行的情况。假设您有一个名为“stuff”的表,其中包含 id、name 和 city 等列。您想要搜索名称和城市列中具有相同值的行。

SQL 查询

要实现此目的,您可以使用以下 SQL查询:

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
登录后复制

说明

  • 主查询(select s.id, t.*)从原始表中选择id列([ stuff])以及子查询 (t) 中的所有列。
  • 子查询(选择名称、城市、 count(*) as qty) 按名称和城市对表进行分组,并计算每对出现的次数。
  • 有 count(*) > 1 子句过滤子查询以仅包含计数大于 1 的名称和城市对(即重复项)。
  • 连接条件(在 s.name = t.name 和 s.city = t.city 上)根据名称和城市将原始表链接到子查询,选择组合出现多个的行

输出

此查询将返回以下输出,显示具有重复项的 id 和名称-城市对:

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板