2017-05-18 18 views
0

を持っている私はこの1つ2番目の列は常に同じ値に

ID | CountryID 
1 | 22 
1 | 22 
2 | 19 
3 | 0 
3 | 14 
3 | 18 
3 | 21 
3 | 22 
3 | 23 
4 | 19 
5 | 9 
5 | 9 
6 | 14 

のような表があると私は、最初のID列でグループ化したいが、CountryIDが同じ値を持つ行のみを選択のみタプルを選択IDを通じて結果の表は次のようになります

ID | CountryID 
1 | 22 
2 | 19 
4 | 19 
5 | 9 
6 | 14 

アイデアはありますか?

答えて

4

私は次のクエリが動作するはずだと思う:

SELECT ID, MAX(CountryID) 
FROM Table1 
GROUP BY ID 
HAVING MIN(CountryID) = MAX(CountryID) 
+0

繰り返します値は、(7,12)、(7,13)のような/最大のをminされていない場合にこれがケースに失敗し、 (7,11)、(7,12)。私が正しく理解していれば、これも(7,12)を選択すべきです。 –

+0

はい、私たちは '(4,22)'と一緒に行を挿入しますが、 – Susang

+0

@CoderofCode OPは 'あなたの例と矛盾していると思われる' CountryIDがIDのどこにあるのか 'と言っています。 – reaanb

1
SELECT ID, count(distinct CountryID) 
FROM Table1 
GROUP BY ID 
HAVING count(distinct CountryID)=1 
+0

クエリは2番目の列にカウントを返しますが、OPによって要求されたCountryIDは返しません。 – reaanb

+0

はいその真;)GJ! – Esperento57

関連する問題