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