2009-08-01 7 views
22

테이블에 ID와 이름의 두 열이 있습니다. 내가 얻을 원하는 것은 이것이다빈도별로 정렬 된 상위 고유 결과 선택

id | name 
---------- 
1 Jeff 
2 Sam 
3 Carl 
4 Sam 
5 Carl 
6 Jeff 
7 Dave 
8 Jeff 

: 데이터는 다음과 같습니다 기본적으로

name | frequency 
---------------- 
Jeff  3 
Carl  2 
Sam  2 
Dave  1 

, 나는 테이블 내에서 고유 한 이름을 계산 SQL 쿼리를해야하고, 자신의 frequnecy별로 정렬 . 중요한 경우 MySQL을 사용하고 있습니다.

감사합니다.

답변

25

나는 그것을 테스트하지 않았습니다, 그래서 구문이 완벽하지 않을 수도 있습니다,하지만 이런 일에 대해 :

select name, count(*) as frequency 
from your_table 
group by name 
order by count(*) desc 

당신에게 고유 한 이름을 제공해야하고이 표에 appeat 시간의 해당 번호,

SELECT name, COUNT(*) as frequency 
FROM name_table 
GROUP BY name 
ORDER BY COUNT(*) DESC; 

이 것 GROUP BYname (비 집계 : 당신은 GROUP BY를 사용할 필요가 그 숫자

+1

고맙습니다. –

+1

환영합니다 :-) –

+0

그냥 약간의 추가 주문 절도 "주문 빈도 순서"와 비슷할 수도 있습니다 – Elnoor

13

에 의해 주문 열은 GROUP BY 절에서 명명해야 함) 의 빈도는 COUNT입니다.

만 상위 25를 원하는 경우에, 당신은 다음과 같은 LIMIT 절을 추가로 진행 할 수 있습니다

:

SELECT name, COUNT(*) as frequency 
FROM name_table 
GROUP BY name 
ORDER BY COUNT(*) DESC 
LIMIT 25; 
GROUP BY 절에 대한

상세 정보는 MySQL 매뉴얼에서 사용할 수 있습니다 12.2.8 SELECT Syntax

+0

감사합니다, Andrew. 너 정말 최고야. –