请你找出每个岗位分数排名前2名的用户,得到的结果先按照language的name升序排序,再按照积分降序排序,最后按照grade的id升序排序
select t.id,t.name,t.score
from (
select g.id,l.name,g.score,
dense_rank() over(partition by l.id order by g.score desc) as rk
from grade g left join language l
on g.language_id= l.id
)t
where t.rk <=2
order by t.name,t.score desc;
想知道,这个的具体逻辑是什么,搞不懂from后面的意义
就是把一个select的结果当表来读,属于嵌套查询