select aa.id,l.name,aa.score from
                                  (select g.*, @a:= if(@b =language_id,if(@c = score,@a,@a+1),1) r,
                                          @b:=language_id , @c:=score
                                   from grade g,(select @a:=1,@b := -1 ,@c:=-1) a
                                   order by language_id,score desc) aa
                                    join language l on l.id=aa.language_id
where aa.r<=2
order by l.name,aa.score desc,aa.id asc;

 京公网安备 11010502036488号
京公网安备 11010502036488号