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

相关推荐

每晚夜里独自颤抖:把华北改为华南再试一试,应该就没啥问题了。改完可能都不用投,别人主动联系了。
点赞 评论 收藏
分享
每晚夜里独自颤抖:这个在牛客不是老熟人了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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