検討する
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
良い点は、group byを使用する必要がないことです。
個別のペアのcountだけが必要な場合。
それを行う最も簡単な方法は次のとおりですSELECT COUNT(DISTINCT a,b) FROM pairs
以前のソリューションではすべてのペアがリストされていたため、2番目のクエリを実行してそれらをカウントする必要がありました。