两表自连接,where子句配合having count(distinct g2.score)<3得到分组后score的dense_rank前两位排名
select g1.id,name,g1.score
from grade g1,grade g2,language l
where g1.language_id=g2.language_id and g1.score<=g2.score and g1.language_id=l.id
group by g1.id,g1.language_id
having count(distinct g2.score)<3
order by name asc,g1.score desc,g1.id asc