with t1 as (
    select a.name,
    (case when b.type = 'add' then b.grade_num else -b.grade_num end ) as grade_change
    from grade_info as b
    left join user as a
    on a.id = b.user_id
)
select name, sum(grade_change) as grade_num
from t1
group by name
order by grade_num DESC
limit 1;