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

获得积分最多的人(三)

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

with grade as 
(
  select user_id,sum(grade_change) grade_num
  from (
    select user_id,grade_num
    ,case when type='add' then grade_num else (-1)*grade_num end grade_change
    from grade_info) as t1
  group by user_id
) -- 用户积分表

select id,name,grade_num
from (
  select user.id,name,grade_num
  ,dense_rank()over(order by grade_num desc) posn
  from user
  inner join grade
  on user.id=grade.user_id
) as t2
where posn=1


全部评论

相关推荐

11-04 19:05
已编辑
东莞城市学院 单片机
不知道怎么取名字_:你这个要实习两年?哪有这么久的,感觉就是即使你毕业了,但还按实习的话,是不是不用给你缴社保公积金啥的
点赞 评论 收藏
分享
苗条的伊泽瑞尔最喜欢...:同28届被压力了,电科✌就不能去卷算法吗?把Java留给我们双非卷
投递快手等公司10个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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