2017-05-22 10 views
0

に複数のカラムに別々の後に単一の列に重複しなさい:私はこのようになりますテーブルを持つSQL

name | id 
----------- 
A 1 
A 1 
B 2 
C 1 
D 3 
D 3 
F 2 

彼らは名前の重複しているので、私は、IDの1と2を返すようにしたいです。それはDのために別個のものであるので、私は私が最初に明確なペアリングを取得するクエリを実行すると思って、3

基本的には、3を返すようにしたくないので、上記の

name | id 
----------- 
A 1 
B 2 
C 1 
D 3 
F 2 

に減少しそして、ID列で重複検索を実行します。しかし、私はそのクエリを構築するための正しい構文を見つけるのに苦労しています。

答えて

3

GROUP BYと別名を数えるHAVING句を使用すると、結果を得ることができます。 HAVING句は、複数の異なる名前を持っているそれらのIDをフィルタリングします:

ここ
select id 
from Table1 
group by id 
having count(distinct name) > 1 

demo

+1

おかげで、これはトリックをやりました! – Shark