select a.id,b.name,a.score from( select id,language_id,dense_rank() over(partition by language_id order by score desc)as rn,score from grade )a,language b where rn<=2 and a.language_id=b.id order by name asc,score desc
select a.id,b.name,a.score from( select id,language_id,dense_rank() over(partition by language_id order by score desc)as rn,score from grade )a,language b where rn<=2 and a.language_id=b.id order by name asc,score desc