2011-08-13 141 views
103

我有一個名爲「上崗」 SQL表看起來像這樣:SQL:如何獲得列中每個不同值的計數?

id | category 
----------------------- 
1 | 3 
2 | 1 
3 | 4 
4 | 2 
5 | 1 
6 | 1 
7 | 2 

每個類別號碼對應的類別。如何計算每個類別在帖子上出現的次數全部在一個sql查詢

作爲一個例子,這樣的查詢可能返回一個符號陣列,例如這樣的:(1:3, 2:2, 3:1, 4:1)


我的當前方法是使用查詢針對每個可能的類別,如:SELECT COUNT(*) AS num FROM posts WHERE category=#,然後再結合返回值轉換爲最終數組。但是,我正在尋找只使用一個查詢的解決方案。

+1

的可能的複製[MySQL的:計算不同值的出現(https://stackoverflow.com/questions/1346345/mysql-count-occurrences-of-distinct-values) –

回答

186
SELECT 
    category, 
    COUNT(*) AS `num` 
FROM 
    posts 
GROUP BY 
    category 
+2

謝謝!這比我想象的要簡單得多! –

+22

** COUNT(1)**對性能會更好 –

+3

@MichelAyres:source? – Moberg

相關問題