SELECT b.id,a.name,b.score
FROM language a
LEFT JOIN(
    SELECT id,language_id,score,DENSE_RANK() OVER(partition by language_id order by score desc) s_rank
    FROM grade 
) b
ON a.id = b.language_id
WHERE b.s_rank < 3
ORDER BY a.name,b.score DESC,b.id