# 取出每个岗位id分数排名前二的用户,使用dense_rank()
select id, language_id, score
from (
select *, dense_rank()over(partition by language_id order by score desc) rank_s
from grade
) t1
where rank_s in (1, 2)
# 连接上表和language表,获取name字段
select t2.id, name, score
from (
select id, language_id, score
from (
select *, dense_rank()over(partition by language_id order by score desc) rank_s
from grade
) t1
where rank_s in (1, 2)
) t2
join language l
on t2.language_id = l.id
order by name, score desc;



京公网安备 11010502036488号