1. ホーム
  2. sql

[解決済み] 複数の列で重複しているものを見つけるには?

2022-10-05 10:53:30

質問

以下の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

どのように解決するのですか?

重複している id ペアに対して namecity :

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