2011-03-20 4 views
3

MySQL 데이터베이스에서 가장 자주 발생하는 값을 선택하는 방법은 무엇입니까? 이러한 행에, 나는 num 필드가 가정 :MySQL 데이터베이스에서 가장 자주 발생하는 값

1, 1, 3, 1, 1, 17, 12, 1, 3, 17, 3

나는 세 가지 가장 자주 발생하는 값, 1, 3, 17을 발견하고 싶었다면, 내가이 일을 (그리고 점점 가겠어요 방법 카운트)?

SELECT UNIQUE에 적절한 방법을 사용하고 각각의 개별 값에 대한 집계를 수행 하시겠습니까? 더 효율적인 방법이 있습니까? 이것은 더 큰 데이터 세트에 대해서는 실패 할 것으로 보인다.

도움 주셔서 감사합니다. 이것은 MySQL 데이터베이스와 함께 PHP로 작성되었습니다. 이 같은

답변

15

뭔가 작업을해야합니다 :

SELECT num, COUNT(num) AS ct 
FROM yourtable 
GROUP BY num 
ORDER BY ct DESC 

이것은 num 열을 기준으로 그룹에 결과를 MySQL을 알려줍니다. 각 num 값에 대해 찾은 행의 수를 COUNT(num)으로 선택하면 ORDER BY을 발행하여 num의 각 값의 행 수에 따라 결과를 정렬합니다. 테이블이 값으로

:

1, 1, 3, 1, 1, 17, 12, 1, 3, 17, 3 

결과는 다음과 같습니다

num | ct 
============ 
    1 | 5 
    3 | 3 
    17 | 2 
    12 | 1 
+0

'ct'는 무엇입니까? 모든 코드를 설명해주십시오. – Cyclone

+0

몇 가지 설명을 추가했습니다 – jterrace

+0

내 데이터 세트가 주어지면 그 결과에 내 결과는 어떻게됩니까? – Cyclone

0

MySQL의 요리 책은 기본적으로

SELECT num, COUNT(num) AS occurrence 
FROM table 
GROUP BY num 
같은 것을 내려 오는 generating frequency distributions에 대한 섹션을 가지고
관련 문제