题解 | #获得积分最多的人(三)#
获得积分最多的人(三)
https://www.nowcoder.com/practice/d2b7e2a305a7499fb310dc82a43820e8
SELECT
tt.user_id,
user.name,
tt.sum_num
FROM
(
SELECT
* ,
DENSE_RANK() OVER( ORDER BY sum_num DESC ) AS rk
FROM
(
SELECT
user_id,
SUM(
CASE
WHEN type = 'add' THEN grade_num
WHEN type = 'reduce' THEN -1 * grade_num
ELSE 0
END
) AS sum_num
FROM
grade_info
GROUP BY
user_id
) AS tmp
) AS tt
LEFT OUTER JOIN
user
ON
tt.user_id = user.id
WHERE rk <=1
;
