题解 | #获得积分最多的人(三)#
获得积分最多的人(三)
https://www.nowcoder.com/practice/d2b7e2a305a7499fb310dc82a43820e8
SELECT
user_id,
name,
grade_num
FROM(
select
user_id,
name,
SUM(case when type = 'add' then grade_num
when type = 'reduce' THEN -1*grade_num
END) AS grade_num,
rank() over(order by SUM(case when type = 'add' then grade_num
when type = 'reduce' THEN -1*grade_num
END) desc) AS T
from
grade_info u1
LEFT JOIN user U ON U.id = u1.user_id
GROUP BY user_id,name
) AS GH
WHERE GH.T = 1
#SQL训练#