2015-09-18 84 views
1

如何檢索colA具有多個唯一colB值的行?選擇columnA具有多個唯一列B值的行

例如:

+------+------+ 
| colA | colB | 
+------+------+ 
| 1 | A | 
| 1 | B | 
| 2 | C | 
| 3 | D | 
| 3 | D | 
+------+------+ 

鑑於上述數據,我只希望檢索記錄,其中colA = 1,因爲這是其在colB不止一個獨特的價值的唯一列。

我無法理解它。我有一種感覺,我錯過了一些非常明顯的東西。

這可能嗎?

回答

2

您可以使用exists作爲

select * from table_name t1 
where exists(
    select 1 from table_name t2 
    where t1.colA = t2.colA 
    and t1.colB <> t2.colB 
) 

如果你只是找到可樂後,那麼你可以使用

select colA from table_name 
group by colA 
having count(distinct colB) > 1 
+0

謝謝 - 第一個查詢是我需要的 – billyonecan

+0

不客氣! –

0

您可以使用COUNT(DISTINCT ..)讓每個不同的列B值的計數列一個值,然後用HAVING從句來得到你所需要的:

SELECT colA 
FROM myTable 
GROUP BY colA 
HAVING COUNT(DISTINCT colB) > 1; 

這裏是一個SQL Fiddle的例子。

相關問題