検討
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
しかし、「式によるグループではありません」と表示されます
あなたが意味するのはどちらかです
SELECT DISTINCT a, b FROM pairs;
また
SELECT a, b FROM pairs GROUP BY a, b;
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の回答に触発されました
これにより、例として与えている結果が得られます。
SELECT DISTINCT a, b
FROM pairs
タプルをフィルタリングする場合は、次の方法で使用できます。
select distinct (case a > b then (a,b) else (b,a) end) from pairs
良い点は、groupbyを使用する必要がないことです。
個別のペアの数だけが必要な場合。
それを行う最も簡単な方法は次のとおりです
SELECT COUNT(DISTINCT a,b) FROM pairs
以前のソリューションではすべてのペアが一覧表示され、それらをカウントするために 2 番目のクエリを実行する必要がありました。