select x.id, x.name, x.score from (SELECT g.id, l.name, g.score, DENSE_RANK()over(partition by l.name order by score desc)mm FROM grade g LEFT JOIN language l on l.id = g.language_id)x where x.mm <=2 ORDER BY x.name ,x.score DESC

select x.id, x.name, x.score from (SELECT g.id, l.name, g.score, DENSE_RANK()over(partition by l.name order by score desc)mm FROM grade g LEFT JOIN language l on l.id = g.language_id)x where x.mm <=2 ORDER BY x.name ,x.score DESC