私は映画のリストを持つmysqlテーブルを持っています。私は、PHPを使ってWebページ上で投票数や出現数が最も高い映画を表示したいと思います。例えばMYSQL:列から最も高い出現をどのように選択するのですか?
title
Toy Story 3
Toy Story 3
Toy Story 3
Inception
Inception
:表示されるべき値はトイストーリー3
私は映画のリストを持つmysqlテーブルを持っています。私は、PHPを使ってWebページ上で投票数や出現数が最も高い映画を表示したいと思います。例えばMYSQL:列から最も高い出現をどのように選択するのですか?
title
Toy Story 3
Toy Story 3
Toy Story 3
Inception
Inception
:表示されるべき値はトイストーリー3
select title, count(*) as cnt from films group by title order by cnt desc limit 1
「limit 1」を最後に追加すると、おそらく1つのフィルムしか取得できません。 –
良いキャッチ - – Joshua
SELECT title, count(*) as count
FROM films
GROUP BY title
ORDER BY count DESC
LIMIT 1
になりますこれは、各タイトルの行数をカウントし、唯一の最高のタイトルを返します。すべてのタイトルが最大タイトル数でソートされるようにする場合は、制限を解除します。この1つはこの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
:
このクエリは次のように返します。最大数を共有することになります。
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 |
+-------------+-------+
@Konerak:そうですね、ありがとう、ありがとう。 –