SELECT tag,uid,ranking
FROM (
SELECT b.tag,a.uid,
ROW_NUMBER()OVER(PARTITION BY tag ORDER BY max(a.score) DESC,min(a.score) DESC,a.uid DESC) ranking
FROM exam_record a
LEFT JOIN examination_info b ON a.exam_id=b.exam_id
GROUP BY b.tag,a.uid)t1
WHERE ranking<=3
这里要记住 利用order by max(score) desc, min(score) desc, uid 排序来得出,两个高分一样的时候,选择低分最大的排在前面,如果两个都一样,那就选择uid最大的放前面。

京公网安备 11010502036488号