思路很简单,但做的有点复杂了,我不太清楚怎么在分组中运用limit选取前3名

SELECT tag,uid,ranking
from(SELECT tag,uid,ROW_NUMBER()over(PARTITION BY tag order by tag, max_value desc,min_value desc,uid desc)as ranking
from (SELECT tag,uid,max(score)as max_value,min(score) as min_value
from examination_info i right join exam_record e using(exam_id)
group by tag,uid)a)b
where ranking<=3