I create this using the following:
SELECT genre, count(movie_id) FROM movies_genres
GROUP BY genre
ORDER BY count(movie_id) DESC;
我的目标是让电影类型看起来最多,这是前两种类型。 我四处搜索,大多数答案使用“LIMIT 1”,但我认为在这种情况下它不起作用。 我尝试了MAX(),但我不知道如何显示类型列。
请告知,谢谢。
答案 0 :(得分:1)
SELECT genre,count(*)
FROM movie_genres
GROUP BY genre
HAVING count(*) = (
SELECT count(movie_id)
FROM movie_genres
GROUP BY genre
ORDER BY 1 DESC LIMIT 1
)
答案 1 :(得分:0)
一种方法是找到最大数量,然后使用having子句来获取具有该数量的所有类型。
select genre
from movie_genres
group by genre
having count(movie_id) = (
select max(cnt)
from (
select count(movie_id) cnt
from movie_genres
group by genre
) t
)
答案 2 :(得分:0)
这会给出你想要的所有价值吗?首先创建一个集合ID,你想要什么。然后使用WHERE IN
获取所需的输出
SELECT genre FROM movie_genres
WHERE movie_id IN (
SELECT max(movie_id) FROM movies_genres
GROUP BY genre
)