分组求和并编号排序,然后取出编号为1的记录
SELECT a.user_id AS id,user.name,a.grade_num
FROM (
SELECT g.user_id,SUM(g.grade_num) AS grade_num,DENSE_RANK() OVER(ORDER BY SUM(g.grade_num) DESC) AS t_rank
FROM grade_info as g
GROUP BY g.user_id
) AS a,user
WHERE a.user_id=user.id AND a.t_rank=1
ORDER BY a.user_id