Oracle / SQL - 计算单个列中值的出现次数

时间:2011-01-18 22:32:55

标签: sql oracle group-by aggregate-functions

好吧,我可能想出一个更好的头衔,但不知道如何说出来让我解释一下。

假设我有一个包含“CODE”列的表。我的表中的每条记录都有“A”,“B”或“C”,因为它在“CODE”列中的值。我想要的是计算我有多少'A','B'和'C'。

我知道我可以通过3个不同的查询完成此任务,但我想知道是否有办法只用1来做。

1 个答案:

答案 0 :(得分:39)

使用:

  SELECT t.code,
         COUNT(*) AS numInstances
    FROM YOUR_TABLE t
GROUP BY t.code

输出类似于:

code   numInstances
--------------------
A      3
B      5
C      1

如果存在尚未使用的代码,则不会显示。您需要LEFT JOIN到包含代码列表的表,以便查看那些没有任何引用的表。