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

获得积分最多的人(三)

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

select user_id
       ,name
       ,grade_sum
from (
    select t1.user_id
           ,t1.name
           ,sum(t1.score) as grade_sum
           ,DENSE_RANK() over (order by sum(t1.score) desc ) as ranking
    from (select     a.user_id
                     ,b.name
                     ,case when a.type = "add" then 1*a.grade_num
                           when a.type = "reduce" then (-1)*a.grade_num
                           end as score 
          from grade_info as a
          join user as b
          on a.user_id = b.id) t1
    group by t1.user_id
             ,t1.name)  t2
where ranking = 1;
全部评论

相关推荐

评论
点赞
收藏
分享

全站热榜

更多

创作者周榜

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