2011-01-18 319 views
10

好吧,我可能會想出一個更好的標題,但不知道如何說出來,所以讓我解釋一下。Oracle/SQL - 計算單個列中值的出現次數

假設我有一個'CODE'列的表。我的表中的每條記錄都會有'A','B'或'C',因爲它是'CODE'列中的值。我想要的是計算有多少'A','B'和'C'。

我知道我可以有3次不同的查詢做到這一點,但我不知道是否有一種方法只用1

回答

35

使用做到這一點:

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

輸出將類似於:

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

如果存在尚未使用的代碼,則它不會顯示出來。您需要將LEFT JOIN添加到包含代碼列表的表中,以查看那些沒有任何引用的表。

+0

非常感謝,由於一些愚蠢的原因,我一直在逃避我! – dscl