2017-04-14 117 views
0

我有一個表,看起來像這種兩兩行取得列:具有特定值

| col1 | col2 | 
|------|------| 
| a | 1 | 
| a | 2 | 
| a | 3 | 
| b | 1 | 
| b | 3 | 
| c | 1 | 
| c | 2 | 

我需要找到col1的值,其中存在兩行具有相同col1值具有COL2值1和2

結果將是:

| col1 | 
|------| 
| a | 
| c | 

回答

4

您可以通過你想要的col2值過濾行,然後組10,只需要該基團與count = 2

select col1 
from yourTable 
where col2 in (1, 2) 
group by col1 
having count(distinct col2) = 2 
0

另一解決方案是

select col1 
from your_table 
group by col1 
having sum(case when col2 = 1 then 1 else 0 end) > 0 
    and sum(case when col2 = 2 then 1 else 0 end) > 0