select distinct id,name, grade_num from(
select id,name, dense_rank() over (order by grade_num desc) as rk,grade_num
from(
    select u.id,u.name,sum(g.grade_num) over(partition by g.user_id) as grade_num
    from user u
    join grade_info g
    on u.id = g.user_id
)a)b
where rk=1


在上一题基础上,把row_number 换成dense_rank;

再添加一个distinct--虽然不知道为啥不加结果就会有重复