题解 | #每类试卷得分前3名#
每类试卷得分前3名
https://www.nowcoder.com/practice/255aa1863fe14aa88694c09ebbc1dbca
select tid,uid,ranking from (select tag as tid,uid, row_number()over(partition by tag order by max(score) desc,min(score) desc,uid desc) as ranking from examination_info,exam_record where exam_record.exam_id=examination_info.exam_id group by tag,uid) ranktable where ranking <=3
一开始groupby没有按uid分组,所以一直出错:要是想求单个用户的最大分数,就需要对数据进行按用户分组,之后才能利用聚合函数求得最大值,题意不清晰就下手做了浪费了一点时间。