select min(a.id) as id,a.name,a.rank from 表名 a join(select max(rank) as rank,name from 表名 group by name)b on a.rank=b.rank and a.name=b.name
group by a.name,a.rank order by a.id