1. 程式人生 > 其它 >MySQL分組查詢後獲取前N條資料

MySQL分組查詢後獲取前N條資料

思路
查詢出資料,然後使用group by排序,這樣可以得到分組後的資料,然後我們在select中的查詢欄位內自定義一個欄位,用來獲取其排序順序,最後再在外層加一層,只要獲取前N條資料即可。

例子

SELECT  t.*
FROM  (    
    SELECT      a.id,      
                a.type_id,      
                c.`name` AS typeName,      
                a.scan_total,      
                a.`name`,      
                (
SELECT COUNT(b.id) FROM course AS b WHERE b.type_id = a.type_id AND b.scan_total > a.scan_total ) AS top FROM course AS
a LEFT JOIN course_type AS c ON c.id = a.type_id ORDER BY a.type_id ASC, a.scan_total DESC ) AS t WHERE t.top < 3

在這裡插入圖片描述