with re as 
(select *,
       sum(case type when 'add' then grade_num else grade_num*(-1) end) as grade
from grade_info
group by user_id
)

select u.id,
       u.name,
       re.grade as grade_sum 
from re
join user as u
on re.user_id = u.id
where re.grade in (select max(grade) from re)
order by u.id asc;