如何在主列中的每个值的其他列中获取不同的值

时间:2016-05-27 11:16:06

标签: sql oracle select count group-by

我是oracle的初学者,我似乎无法做到这一点 我试图做以下事情

自:

Col1 | Col2 |  Col3
--------------------
Mike | Tree | Acacia
Mike | Tree | Life
Mike | Tree | Seed
Mike | Plant| Seed
Mike | Tree | Seed

要:

Col1 | Col2 | Col3
------------------
Mike | 2    | 3

我似乎无法理解如何做到这一点。

我试过

SELECT Col1, COUNT(distinct Col2) , COUNT(distinct Col23)
from TABLE 
GROUP BY COL1,COL2,COL3

显示的是

Col1 | Col2| Col3
-----------------
Mike | 1   | 1
Mike | 1   | 1
Mike | 1   | 1
Mike | 1   | 1
Mike | 1   | 1

1 个答案:

答案 0 :(得分:3)

group by子句指定您要保留的不同值(让其他选择列表项聚合术语)。根据{{​​1}}的不同组合,当然只有一个col1, col2, col3col2,这解释了为什么您的所有结果都是col3。长话短说 - 只有1条款中应该col1

group by