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

获得积分最多的人(三)

http://www.nowcoder.com/practice/d2b7e2a305a7499fb310dc82a43820e8

知识点

  1. 和上一题代码思路一模一样就是求和的时候使用case when函数,当type是reduce的时候是grade_num*-1否则就是grade_num,其他都一样。

代码

with a as(
          select distinct u.id,u.name,
          sum(case type when 'reduce' then grade_num * -1
              else grade_num end) over(partition by g.user_id)as grade_sum
          from user as u
          join grade_info as g
          on u.id=g.user_id)
select * from a
where a.grade_sum=(select max(a.grade_sum) from a)
order by a.id
全部评论

相关推荐

今天刚通知oc
跑不快的yyyf:接好运
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-28 00:10
已编辑
码农索隆:这哥们库库在我帖子下评论
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务