如何提取非分组列数据?

时间:2016-10-14 07:18:07

标签: sql oracle group-by

我有一张表A,其中包含以下数据:

A:

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

我希望输出为:

colA colA_1
 a     b
 c     d
 e     f

即。我想基于colB对数据进行分组,并从colA中获取值。我知道相同的值在colB中会出现两次。

我想做的是:

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

如何解决此问题以获得所需的输出?

1 个答案:

答案 0 :(得分:3)

无需加入,只需执行GROUP BY

SELECT min(colA), max(colA)
FROM A
group by colB