2011-03-25 4 views
0

내 절차는 순위 desc로 정렬 된 테이블에서 처음 100 개의 행을 취합니다.MySQL 카운트 + 롤업 쿼리 질문의 부분합

SELECT city FROM table ORDER BY rank DESC LIMIT 0,100 

반환 : 다음 각 도시가 순위 내림차순으로 정렬 (100)의 부분 집합이어야한다 (결과 집합에 표시하는 주파수를 계산할

Seattle, 
Portland, 
Los Angeles, 
Portland, 
Eugene, 
Eugene, 
etc... 

아닌 전체 . 테이블)

내가 원하는 무엇 :

Portland, 2 
Eugene, 2 
Seattle, 1 
Los Angeles, 1 

내가 그 쿼리를 작성하는 방법을 아주 잘 모르겠어요, 탄원 도와주세요.

대단히 감사합니다!

답변

2
SELECT city, count(*) 
FROM 
(
    SELECT city FROM table ORDER BY rank DESC LIMIT 0,100 
) as sub 
GROUP BY city 
ORDER BY COUNT(*) DESC