牛客网刷题笔记-SQL74 考试分数(三)

SQL74 考试分数(三)

牛客每次举办企业笔试的时候,企业一般都会有不同的语言岗位,比如C++工程师,JAVA工程师,Python工程师,每个用户笔试完有不同的分数,现在有一个分数(grade)表简化如下:
牛客网刷题笔记-SQL74 考试分数(三)_第1张图片
第1行表示用户id为1的选择了language_id为1岗位的最后考试完的分数为12000,

第7行表示用户id为7的选择了language_id为2岗位的最后考试完的分数为11000,
不同的语言岗位(language)表简化如下:

牛客网刷题笔记-SQL74 考试分数(三)_第2张图片
请你找出每个岗位分数排名前2名的用户,得到的结果先按照language的name升序排序,再按照积分降序排序,最后按照grade的id升序排序,得到结果如下:
牛客网刷题笔记-SQL74 考试分数(三)_第3张图片
——————————————————————————————————————————————————

select g.id,name,score
from(
select *,dense_rank()over (partition by language_id order by score desc) as t_rank
from grade ) g
join language as l
on g.language_id=l.id
where t_rank<=2
order by name,score desc,id

你可能感兴趣的:(mysql)