题解 | 获得积分最多的人(三)
获得积分最多的人(三)
https://www.nowcoder.com/practice/d2b7e2a305a7499fb310dc82a43820e8
select b.id,b.name,a.grade_num from
(SELECT
user_id,
SUM(case when type='add' then grade_num else grade_num*(-1) end) AS grade_num,
max(sum(case when type='add' then grade_num else grade_num*(-1) end)) OVER() AS max_grade_num
FROM grade_info
GROUP BY user_id) a join user b on a.user_id=b.id
where a.grade_num=a.max_grade_num
order by b.id