题解 | #每类试卷得分前3名#又是和group by 报错斗智斗勇的一题

每类试卷得分前3名

http://www.nowcoder.com/practice/255aa1863fe14aa88694c09ebbc1dbca

一开始没理解题意,尝试了一种很复杂的方法,发现求不出结果。 后来发现尝试了一下直接在窗口函数中使用max,min统计,发现可行(于是打开了新世界的大门。 结果将本地代码复制到牛客网时把第一个max(score)的max去掉了。就陷入了疯狂报错。对比了评论区的大佬们才知道,一定要有max才可以。

select tid,uid,ranking from (
select tag tid,uid,
dense_rank()over(partition by tag order by 
                 max(score) desc,
                 min(score) desc,
                 uid desc ) ranking
from examination_info e1 
left join exam_record e2
on e1.exam_id=e2.exam_id
group by tag,uid
) a
where ranking <=3

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务