select u.id,u.name,gi.snum from (select user_id,sum(grade_num) snum,dense_rank() over(order by sum(grade_num) desc) rk from grade_info group by user_id order by snum desc) gi join `user` u on gi.user_id=u.id where rk=1