题解 | #每类试卷得分前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分组,所以一直出错:要是想求单个用户的最大分数,就需要对数据进行按用户分组,之后才能利用聚合函数求得最大值,题意不清晰就下手做了浪费了一点时间。
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务