令我没想得到的是,卡在了多字段的不同方式排序上  哈哈哈
不过最后还是解出来了
select  id, name, score from ( select  g.id,
    language_id, score, dense_rank() over (partition by language_id order by score desc ) as tmp,
    l.name from grade g left join language l on g.language_id = l.id )t1 where tmp<3 order by name asc , score desc , id asc