题解 | #获得积分最多的人(三)#巧用sum(if(expr,v1,v2))

获得积分最多的人(三)

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

-- sum(if(expr,v1,v2))的妙用,用好了会提升一些写代码的效率 select id,name,grade_sum from( select u.id,u.name,sum(if(type='add',grade_num,-1grade_num)) as grade_sum, rank()over(order by sum(if(type='add',grade_num,-1grade_num)) desc ) as t_rank from grade_info g left join user u on g.user_id=u.id group by user_id order by grade_sum desc,user_id) a where a.t_rank=1; -- 第一遍的时候没想到用sum嵌套if,多用了一个左连接条件筛选,相比sum嵌套if会稍微复杂一些。

全部评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务