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)