开发者

MySQL: Group By & Count Multiple Fields

If I have a single field, say, project_id where I want to count the occurrences, I would do something like:

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

What if I want to count the occurrences of a combination of two fields in the same table, i.e. count the number of rows where the combination of project_id and service_id are unique?

So, so I have records in my table like:

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  开发者_Go百科          3            1
1            4            3


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

Just add service_id to your group by and select list. That should do it.

EDIT -

As per comment from @Rajah it seems that for your expected output, you need to use

order by project_id asc, service_id asc
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜