题解 | #获得积分最多的人(三)#

获得积分最多的人(三)

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表

全部评论

相关推荐

04-17 18:32
门头沟学院 Java
野猪不是猪🐗:他跟你一个学校,你要是进来之后待遇比他好,他受得了?
点赞 评论 收藏
分享
永不遗忘:才这么点算什么拉黑,我初筛连着挂几十次了,最后还是能进面
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务