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

获得积分最多的人(三)

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

积分有增有减,可以加个if或case when 进行判断,并赋予负值;求出最高的积分可以找出最大积分进行对比找出,也可以利用开窗函数。

with gs as
(select a.id, a.name,
sum(if(b.type = 'reduce', -b.grade_num, b.grade_num)) as sum_grade
from user a left join grade_info b 
on a.id = b.user_id
group by a.id)
select gs.id as id, gs.name as name, gs.sum_grade as grade_sum from gs 
where sum_grade = (select max(sum_grade) from gs)
order by id;
全部评论

相关推荐

逆流河上万仙退:我觉得佬没必要 学历在这里 去了也不会对履历有很大提升 只是有可能让自己更熟练 是我的话会更倾向于找暑期或者中大厂日常
查看13道真题和解析
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务