题解 | #获得积分最多的人(三)#
获得积分最多的人(三)
https://www.nowcoder.com/practice/d2b7e2a305a7499fb310dc82a43820e8
select b.user_id,u.name,b.grade_num from (select user_id,sum(if(type='add',grade_num,-1*grade_num)) grade_num from grade_info group by user_id) b left join user u on b.user_id=u.id where b.grade_num in ( select max(distinct a.grade_num) from (select user_id, sum(if(type='add',grade_num,-1*grade_num)) grade_num from grade_info group by user_id) a ) order by b.user_id
- 利用sum和if函数求得用户的当前得分
- 求最大值
- 连接user表