思路:将上题的sum()改成sum(case when)
select
id
,name
,grade_sum
from
(
select
id
,name
,sum(case when type = 'add' then grade_num else -grade_num end) grade_sum
,dense_rank()over(order by sum(case when type = 'add' then grade_num else -grade_num end) desc) rk
from user u
left join grade_info g on u.id = g.user_id
group by 1,2
) a
where rk =1
order by id