利用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;

京公网安备 11010502036488号