with t as (
    select user_id, name, sum_grade
    from (
        select user_id, sum(grade_num) over (partition by user_id) as sum_grade
        from grade_info
    ) a join user b on a.user_id=b.id
)
select distinct user_id as id, name, sum_grade as grade_num
from t
where sum_grade=(
    select max(sum_grade) from t
)