2011-01-12 4 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

good catch - добавлено – Joshua

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

Это будет подсчитывать количество строк для каждого заголовка и возвращать только высший титул. Удалите ограничение, если вы хотите, чтобы все заголовки были отсортированы по максимальному количеству титров.

Этот запрос будет возвращать что-то вроде:

+-------------+-------+ 
| title  | count | 
+-------------+-------+ 
| Toy Story 3 |  3 | 
+-------------+-------+ 
+0

отличные ans для меня по крайней мере. – Akram

+0

Спасибо @Akki, не забудьте перепроверить вопрос и ответ, который был вам наиболее полезен. :) –

+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); 

Этого будет возвращать все фильмы, разделить максимальное количество.

Смежные вопросы