select c.user_id as id,name,grade_num
from(
select user_id,dense_rank()over(order by grade_num desc)as rn,grade_num
from (
select user_id,sum(case when type="add" then grade_num else grade_num*(-1) end)as grade_num
from grade_info
group by user_id)b)c,user a
where c.user_id=a.id
and rn=1