题解 | 74#考试分数(三)#
考试分数(三)
http://www.nowcoder.com/practice/b83f8b0e7e934d95a56c24f047260d91
select g.id ,name ,score from ( select * ,dense_rank() over(partition by language_id order by score desc) t_rank from grade ) g join language l on g.language_id=l.id where g.t_rank<=2 order by name,score desc,g.id
思路:利用窗口函数把名次求出来,然后用子查询得到的表去连接 language 表,接下来就是按条件写了。注意使用可重复的 dense_rank() 函数。如 1,1,2
sql题 文章被收录于专栏
牛客网里面的sql题,把答案和思路写下来