2016-10-14 5 views
0

私は次のようなデータを持つテーブルAがありますようグループ化されていない列データを抽出する方法は?

colA colB 
a  x 
b  x 
c  y 
d  y 
e  z 
f  z 

私は出力をしたい:

colA colA_1 
a  b 
c  d 
e  f 

すなわち

AをcolBに基づいてデータをグループ化し、colAから値をフェッチします。私は同じ値がcolBで正確に2回現れることを知っています。

SELECT a1.colA, a2.colA 
FROM A a1 
JOIN A a2 
ON a1.colA != a2.colA and a1.colB=a2.colB; 

しかし、これはのような出力が得られます:

私は何をしようとしていますです

colA colA_1 
a  b 
b  a 
c  d 
d  c 
e  f 
f  e 

がどのように私は、これは所望の出力を得るために修正できますか?

+0

回避策として、代わりに 'SELECT a1.colA、a2.colA'のあなたは' SELECT a1.colA、a2.colA、A1を選択することができますcolBでグループ化し、colAで行を並べ替えて、このリンクでソリューションを適用して、各グループの最初の行を選択します。http://stackoverflow.com/questions/3800551/select-first-row-in-グループごとに – Rumpelstinsk

答えて

3

参加する必要はありません、単にGROUP BYの操作を行います。

SELECT min(colA), max(colA) 
FROM A 
group by colB 
関連する問題