在上一题的基础上在合并表中加入case when
select u.id,u.name,t.grade_sum from (select user_id, sum(abs) as grade_sum, rank()over(order by sum(abs) desc) as a from (select *, (case type when 'add' then grade_num else grade_num*(-1) end) as abs from grade_info) c group by user_id) as t join user u on u.id = t.user_id where t.a = 1