获得积分最多的人(一)

获得积分最多的人(一)

http://www.nowcoder.com/questionTerminal/1bfe3870034e4efeb4b4aa6711316c3b

先按user_id分组统计和,如下结果:
select user_id,sum(grade_num) as grade_sum from grade_info group by user_id order by grade_sum desc;

因为是最大的只有1个,所以使用limit 1 再联立user表就可以得到结果:
select user.name,t.grade_sum from
(select user_id,sum(grade_num) as grade_sum from grade_info group by user_id order by grade_sum desc limit 1) t
join user
on t.user_id=user.id



也可以用前面学过的sum ()over来解决:
select user.name,t.grade_sum from
(select user_id, sum(grade_num)over(partition by user_id ) grade_sum from grade_info order by grade_sum desc limit 1) t
join user
on t.user_id=user.id


全部评论
还要考虑并列第一名的情况
点赞 回复 分享
发布于 2021-08-17 16:06
谁说的最大的只有一个
点赞 回复 分享
发布于 2021-12-11 11:13

相关推荐

03-04 19:02
云南大学 Java
Yki_:没挂,只是没人捞,该干啥干啥,等着就好了
点赞 评论 收藏
分享
无一技之长怎么办:别去右边,售前,实施,需求分析一起,这是把人当牛马用啊,快跑,这些岗位天花板很低的
点赞 评论 收藏
分享
评论
11
2
分享

创作者周榜

更多
牛客网
牛客企业服务