70

検討

 create table pairs ( number a, number b ) 

データの場所

1,1
1,1
1,1
2,4
2,4
3,2
3,2
5,1

等。

数値列 b が持つ個別の値を取得するクエリは何ですか

1,1
5,1
2,4
3,2

それだけ

私はもう試した

select distinct ( a ) , b from pairs group by b 

しかし、「式によるグループではありません」と表示されます

4

5 に答える 5

93

あなたが意味するのはどちらかです

SELECT DISTINCT a, b FROM pairs;

また

SELECT a, b FROM pairs GROUP BY a, b;
于 2009-08-25T20:16:24.280 に答える
20

1,2 と 2,1 を同じペアとして扱いたい場合は、MS-SQL で一意のリストが得られます。

SELECT DISTINCT 
    CASE WHEN a > b THEN a ELSE b END as a,
    CASE WHEN a > b THEN b ELSE a END as b
FROM pairs

上記の@mesziasの回答に触発されました

于 2014-02-14T16:42:41.417 に答える
11

これにより、例として与えている結果が得られます。

SELECT DISTINCT a, b
FROM pairs
于 2009-08-25T20:16:58.320 に答える
5

タプルをフィルタリングする場合は、次の方法で使用できます。

select distinct (case a > b then (a,b) else (b,a) end) from pairs

良い点は、groupbyを使用する必要がないことです。

于 2012-01-28T21:11:49.747 に答える
-1

個別のペアのだけが必要な場合。

それを行う最も簡単な方法は次のとおりです SELECT COUNT(DISTINCT a,b) FROM pairs

以前のソリューションではすべてのペアが一覧表示され、それらをカウントするために 2 番目のクエリを実行する必要がありました。

于 2013-07-14T13:27:12.263 に答える