select id,name,grade_sum from 
(select u.id,u.name,sum(if(type='add',grade_num,-grade_num)) grade_sum,
dense_rank() over(order by sum(if(type='add',grade_num,-grade_num)) desc) as rank1
from user u,grade_info g
where u.id=g.user_id
group by u.name,u.id) a
where rank1 =1
order by id