select 
id
,name
,total
from 
(
    SELECT 
    id
    ,name
    ,sum(if(type='add',grade_num,-1*grade_num)) total,
    rank() over(order by sum(if(type='add',grade_num,-1*grade_num)) desc) t_rank
    from user u 
    join grade_info g on u.id=g.user_id 
    group by id,name
) t
where t_rank=1
order by id

思路:比之前的这里涉及到加减,我们可以用一个sum 函数里面嵌套一个if 或者case when 函数,这样就能实现