MySQL分組排序求Top N

表結構

 

按照grp分組,按照num排序,每組取Top 3,輸出結果如下:



 

 

源代碼:

SELECT * FROM score AS t3 
WHERE ( 
	SELECT COUNT(*) FROM score AS t1 
	LEFT JOIN score AS t2 
	ON t1.grp = t2.grp AND t1.num < t2.num 
	WHERE t1.id = t3.id
) < 3
ORDER BY t3.grp ASC, num DESC

 

在where中可以通過子查詢創造一個新的變量來過濾。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章