2016-07-01 3 views
0

からの二つの要素にグループ化された列から選択します私はこのようなデータをSQLデータベースを得た:SQL - 列B

A | B 
----- 
q | 1 
w | 2 
q | 2 
w | 3 
e | 1 
e | 2 
e | 3 

私が同じ値を持つAとは異なる行が異なる持って何回見てみたいです1対で、2 B.の値は、QとEのためだったので、私はのようなので、結果は見なければならない。2.を持つようにしたい:私は、次のSELECTを書いた

1, 2 | 2  (q and e have 1 and 2) 
1, 3 | 1  (only e has both 1 and 3) 
2, 3 | 2  (w and e have both 2 and 3) 

が、それは間違っています:

SELECT DISTINCT d1.b AS b1, d2.b AS b2, COUNT(d1.a) 
FROM (SELECT a, b FROM data GROUP BY b) as d1, data as d2 
GROUP BY b1, b2 
HAVING b1 <> b2 
+1

あなたのRDBMSは何ですか? SQL Server、Postgres ,,,? –

+0

イベントとは何ですか?ユーザーは何ですか? '[A]または[B]' –

+0

誤解を招いて申し訳ありません。今私は自分の兆候と一致するように質問を編集しました。 – user3631854

答えて

0

は、私はあなたがしたいと思います自己結合凝集と:

イムを使用して[A] = user [B] = event

Demo

select d1.[event], d2.[event], count(distinct d1.[user]) num_user 
from data d1 
join data d2 
    on d1.[event] < d2.[event] 
and d1.[user] = d2.[user] 
group by d1.[event], d2.[event]; 

enter image description here

関連する問題