When multiple persons get same highest lvl, do you have specific rules for picking out which one to be selected? If not, firstly, you could try following see if it fits your need:
select Name, Class, lvl
from
(
select *, ROW_NUMBER() over (partition by Class order by lvl desc) as r
from Test1
) t
where r = 1
order by Class