2011-01-12 3 views
3

나는 영화 목록이있는 mysql 테이블을 가지고있다. 나는 PHP를 사용하여 웹 페이지에서 투표 수나 출현 수가 가장 많은 영화를 보여주고 싶습니다. 어떻게 할 수 있습니까? 예를 들어MYSQL : 열에서 가장 많이 발생하는 항목을 선택하는 방법은 무엇입니까?

title 
Toy Story 3 
Toy Story 3 
Toy Story 3 
Inception 
Inception 

: 토이 스토리 3

+0

@Konerak : 맞아, 나는 그것을 놓쳤다, 고마워. –

답변

8
select title, count(*) as cnt from films group by title order by cnt desc limit 1 
+3

'limit 1'을 마지막에 추가하여 하나의 영화 만 얻으십시오. –

+0

좋은 캐치 - – Joshua

3
SELECT title, count(*) as count 
FROM films 
GROUP BY title 
ORDER BY count DESC 
LIMIT 1 

이 각 타이틀에 대한 행의 수를 카운트하며 오직 최고 타이틀을 리턴 할 것이다 표시되어야하는 값. 모든 제목이 최대 제목 수에 따라 정렬되도록하려면 한도를 제거하십시오.

이 쿼리는 같은 반환이 하나가 최대 수를

+0

나를 위해 좋은 ans을 atleast 추가했습니다. – Akram

+0

@Akki에게 감사드립니다. 가장 도움이되었던 질문과 답변을 upvote하는 것을 잊지 마십시오. :) –

+0

이미 완료되었습니다. – Akram

1
select f.title, f.cnt as count 
from 
(select title, count(*) as cnt 
from films f 
group by title) f 
, (select max(count(*)) mcnt 
FROM films 
GROUP BY title) f2 
where f.cnt = f2.mcnt 

을 그 최대 개수를 공유 할 수 있습니다.

2
SELECT title,COUNT(title) AS cnt 
FROM Film 
GROUP BY title 
HAVING cnt=(SELECT COUNT(title) as count 
       FROM Film 
      GROUP BY title 
      ORDER BY count desc limit 1); 

모든 영화를 반환이 하나를 공유하는 일이 모든 영화를 반환합니다

+-------------+-------+ 
| title  | count | 
+-------------+-------+ 
| Toy Story 3 |  3 | 
+-------------+-------+ 
관련 문제