2011-03-16 41 views
2

如果我有一個單一的領域,比方說,PROJECT_ID在這裏我要計數的出現,我會做這樣的事情:MySQL的:集團通過與伯爵多個字段

select project_id, count(project_id) as count from tbl group by project_id, order by count desc 

,如果我要算髮生什麼兩個字段在同一個表中的組合,即計算project_id和service_id的組合唯一的行數?

所以,所以我有記錄在我的表像:

project_id service_id 
1   1 
1   2 
1   2 
1   2 
1   2 
1   3 
1   4 
1   4 
1   4 


I would want the result of my query to be something like: 

project_id service_id count 
1   1   1 
1   2   4 
1   3   1 
1   4   3 

回答

9
select project_id, service_id, count(*) as count 
from tbl group by project_id, service_id 
order by count(*) desc 

只需添加service_idgroup byselect列表。這應該做到這一點。

編輯 -

按照評論從@Rajah似乎對你的期望的輸出,你需要使用

order by project_id asc, service_id asc 
+0

沒錯!很簡單,我應該可以自己做到這一點。謝謝! – David 2011-03-16 17:14:27

+2

+1爲一個很好的答案,@Sachin Shanbhag。你認爲order by子句可能看起來更像大衛所希望的結果:* order by project_id,service_id asc * – rajah9 2011-03-16 17:17:55

+0

@David - 這會比你想象中的這個問題花費更少的時間..無論如何,你是受歡迎的。 ;) – 2011-03-16 17:18:04