sql - 如何查找多列中的重复项?

标签 sql sql-server sql-server-2008 duplicates

所以我想做一些像下面这样的sql代码:

select s.id, s.name,s.city 
from stuff s
group by s.name having count(where city and name are identical) > 1

要生成以下内容,(但忽略仅名称或仅城市匹配的情况,它必须位于两列上):

id      name  city   
904834  jim   London  
904835  jim   London  
90145   Fred  Paris   
90132   Fred  Paris
90133   Fred  Paris

最佳答案

namecity 对的 id 重复:

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

关于sql - 如何查找多列中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8149210/

相关文章:

sql - 谜题 : Spreading numbers evenly in groups

mysql - 将远程数据库 View 作为表复制到本地数据库

用于更改所有存储过程中的所有表引用的 SQL 脚本

sql-server-2008 - 如何使用 powershell 配置 SQL Native Client?

sql - sql server 2008中可以有数组类型数据吗

sql - 比较表中的列值计数

已使用连接表的语句上的 mySQL 行号生成

sql - MySQL - 不使用索引

mysql - 使用特定电子邮件更新表中的状态

sql - 将合并、计数、案例和子句组合在一起