2011-03-16 3 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의 조합이 고유 한 행 수를 계산합니까? 그냥 group byselect 목록에 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 

:

그래서, 그래서처럼 내 테이블에서 레코드를 가지고있다. 그렇게해야합니다.

편집이 - @Rajah에서 주석 사항에 따라

그것은 당신의 예상 출력을 위해, 당신은

order by project_id asc, service_id asc 
+0

네를 사용해야 할 것 같다! 그렇게 간단하게, 나는 그것을 스스로 얻을 수 있어야했습니다. 감사! – David

+2

+1 좋은 답변, @ Sachin Shanbhag. order by 절이 project_id, service_id asc * – rajah9

+0

@ David에 의해 David의 원하는 결과처럼 보일 것이라고 생각하십니까?이 질문을 구성하는 것보다 시간이 덜 걸렸을 것입니다. 어쨌든 당신은 환영합니다. ;) –