# 注意:如果按照 u.id分组,数据库不知道该选择哪个 u.name的值来显示,因为对于同一个 u.id可能有多个不同的 u.name。但是当你按照 u.id, u.name分组时,就明确了对于每一个 (u.id, u.name)组合,会有唯一的一组聚合结果

with t as 
(
    select u.id,u.name
           ,sum(g.grade_num) as grade_num
    from user u join grade_info g on u.id = g.user_id
    group by u.id,u.name
)

select id,name,grade_num
from t
where grade_num = (select max(grade_num) from t)
order by 1