mysql GROUP BY无法实现,用的临时变量完成的,经过测试效率极高
-- @rownum 用于计算条数
-- @clazz_id 用于比较的临时班级id(分组列名)
-- 获取每个班级前5名的学生
SELECT * FROM ( SELECT id,
student_id,
score, clazz_id , @rownum:=IF(@clazz_id=clazz_id,@rownum+1,1) count, @clazz_id := clazz_id FROM student_score ORDER BY score DESC ) temp WHERE count > 5