2017-01-02 12 views
3

によってグループに属していない別の列に設定されたデータを排除することは である私は1グループ、私が探しています何

COLUMN1 | COLUMN2 | Source 
    --------------- --------------- 
    1 | X |  a  
    1 | X |  b  
    1 | X |  c 
    2 | Y |  a  
    2 | Y |  b  
    3 | Y |  c  
    3 | Y |  b 
    4 | Y |  c 
    5 | Z |  b 

結果は

でなければなりません。この表のような表を持っています
COLUMN1 | COLUMN2 
    --------------- 
    3 | Y 
    4 | Y 
    5 | Z 

私が達成しようとしているのは、Column1とColumn2に基づいて結果セットをグループ化しようとしていて、セットのいずれかに列名 "Souce"の値 "a"が含まれていれば、 、たとえば

1 X 
2 Y 

これにご相談ください。

答えて

4

あなたはこのために条件付きの集約を使用することができますTABLE1 FROM COLUMN2 :

SELECT column1, 
    column2 
FROM your_table t 
GROUP BY column1, 
    column2 
HAVING COUNT(CASE WHEN source = 'a' THEN 1 END) = 0; 
-1

あなたは、クエリの下に使用して所望の結果を達成することができます

DISTINCT COLUMN1を選択して、ソース<> ''

+0

いいえ。このクエリでは、依然として1 | Xと2 | Yが得られます。 –

関連する問題