2017-07-26 7 views
1

は、次の表を仮定した場所:行を見つけるために、どのように同じ列は、同じ別の列

Name Age Occupation 
Alex 20 Student 
Alex 20 Seller 
Alex 20 Minister 
Liza 19 Student 
Liza 20 Volunteer 
Liza 21 HR partner 

私は年齢の欄にのみ(とのみ)持っ名前20を見つけたいです。だから、このテーブルから、私はすべての "アレックス"の行と "リザ"の行を全く得たくない。 ありがとう!

答えて

3

Group ByHaving句を使用する必要があります。それは総数に等しいならば、名前だけ20年齢などを持っている場合にのみ、age = 20

select Name 
from table 
group by Name 
having count(case when Age = 20 then 1 end) = count(*) 

count(case when Age = 20 then 1 end)カウントこの方法を試してみてください。

+0

は完璧に動作します。ありがとうございました! –

2

一つの方法NOT IN()を使用している:

SELECT Name, Age, Occupation 
FROM YourTable 
WHERE Age = 20 
AND Name NOT IN (SELECT Name FROM YourTable WHERE Age <> 20) 
+0

別の正しい方法です。ありがとう! –

3

ちょうど1別の方法:

select Name 
from table 
group by Name 
having min(Age) = 20 and max(Age) = 20 
関連する問題