2013-05-04 18 views
-1

我希望這個問題是有道理的..基本上我有一個包含music_id和genre_id列如何過濾包含重複條目的表以顯示最存在的行?

它可以包含像這樣

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

重複條目表稱爲genre_tags我想要檢索的是基於該genre_id最重複的條目

因此,基於上面的例子中,我將離開這個結果

music_id | genre_id 
281  3 
243  7 
90   6 

回答

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

感謝不大,我遇到了一個問題,並把它添加到SQL小提琴,檢查music_id 193 - 它應該與genre_id被返回的9,但相反返回2 .. – 2013-05-04 18:31:26

+0

你的鏈接小提琴鏈接在哪裏? – 2013-05-04 18:32:32

+0

http://www.sqlfiddle.com/#!2/5e942/1 – 2013-05-04 18:33:28

0
select top 1 
genre_id, count(*) 
group by genre_id 
order by count(*) desc 
相關問題