with grade_rank as (
select
*,
dense_rank() over (partition by language_id order by score desc) as rn
from
grade
)
select
g_r.id,
l.name,
g_r.score
from
grade_rank as g_r
left join
language as l
on
g_r.language_id = l.id
where
g_r.rn <= 2
order by
l.name,
g_r.score desc,
g_r.id


京公网安备 11010502036488号