如何过滤具有重复条目的表以显示最多的行?

时间:2013-05-04 18:21:26

标签: mysql sql

我希望这个问题有道理..基本上我有一个名为genre_tags的表,其中包含music_id和genre_id列

它可以包含重复的条目,如此

music_id | genre_id
281           3
281           3
281           4
243           7
90            6
90            6
90            10

我想要检索的是基于genre_id

的最重复的条目

基于上面的例子,我将留下这个结果

music_id | genre_id
281        3
243        7
90         6

2 个答案:

答案 0 :(得分:1)

试试这个,

SELECT  music_ID, genre_ID
FROM    TableName a
GROUP   BY music_ID, genre_ID
HAVING  COUNT(*) = (SELECT COUNT(*) total 
                    FROM    tableName b
                    WHERE a.music_ID = b.music_ID
                    GROUP   BY music_ID, genre_ID
                    ORDER BY total DESC
                    LIMIT 1)

答案 1 :(得分:0)

select top 1
genre_id, count(*)
group by genre_id
order by count(*) desc