利用DENSE_RANK()函数,当积分最多的人不止一个时也可以求解。


SELECT name,grade_num
FROM
(SELECT name,SUM(grade_num) as grade_num
       ,DENSE_RANK() OVER (ORDER BY SUM(grade_num) DESC) as grade_rank
FROM user u 
INNER JOIN grade_info g 
ON u.id = g.user_id
GROUP BY name ) A
WHERE grade_rank = 1;