具有多个MAX值

时间:2017-01-31 03:01:20

标签: mysql

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(),但我不知道如何显示类型列。

请告知,谢谢。

3 个答案:

答案 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
)

enter image description here

答案 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
)