2016-11-10 3 views
1

と私は3列を持つ小さなテーブルがあります:私はしたい何カウントのペアは、ABとBAは、第三引数

+---------------------------+ 
| col 1 | col2 | col 3  | 
+---------------------------+ 
| A | B  | 10  | 
| A | B  | 20  | 
| B | A  | 20  | 
| B | C  | 10  | 
| B | C  | 20  | 
| A | C  | 10  | 
| C | A  | 10  | 

をコラム3の異なる値の数をカウントすることで、それぞれのカップル(COL 1 、col 2)が得られる。 私の問題は、(A、B)が(B、A)と同じであるので、私はダブロンを扱うことができません。

+------------------------+ 
| col 1 | col 2 | count()| 
+------------------------+ 
| A | B | 2  | // OR BA : 2 
| B | C | 2  | // OR CB : 2 
| A | C | 1  | // OR CA : 1 

答えて

2

私はあなたがcount(distinct)least()greatest()をしたいと思います:ここで

は私が取得しようとする結果である

select least(col1, col2) as col1, greatest(col1, col2) as col2 
     count(distinct col3) as cnt 
from t 
group by least(col1, col2), greatest(col1, col2); 
+0

THXそれが働いていた多くのことを、私はドキュメントをチェックするつもりです少なくとも最も大きい! –

関連する問題