select t.id,t.name,t1.grade_num
from user t
right join
(
select distinct user_id,sum(if(type='add',grade_num,-1*grade_num))over(partition by user_id) grade_num
from grade_info
)t1
on t.id = t1.user_id
where t1.grade_num = (select
max(b.sum_num)
from(
select (sum(if(type='add',grade_num,-1*grade_num))over(partition by user_id)) sum_num
from grade_info) b)