sql script
select tmp.id, l.name, tmp.score from (select id, language_id, dense_rank() over(partition by language_id order by score desc) as rank_s, score from grade) tmp, language l where tmp.rank_s < 3 and tmp.language_id=l.id order by l.name asc, tmp.score desc, tmp.id asc