2017-07-26 88 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子句。試試這個方法只

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)計數時age = 20如果它等於總數則名只有20年齡。使用NOT IN()

+0

完美的作品。謝謝! –

2

方式一:

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

另一種正確的方法。謝謝! –

3

只要一另一種方式:

select Name 
from table 
group by Name 
having min(Age) = 20 and max(Age) = 20 
相關問題