with final as (select a.id, b.name, a.grade_num, dense_rank() over (order by a.grade_num DESC) as dr from 
(select user_id as id, sum(case when type = 'add' then grade_num when type = 'reduce' then grade_num*(-1) end) as grade_num from grade_info
group by user_id 
order by user_id) a join user b
on a.id = b.id)

select id, name, grade_num from final
where dr = 1