获得积分最多的人(一)

获得积分最多的人(一)

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-12-11 11:13
还要考虑并列第一名的情况
点赞 回复 分享
发布于 2021-08-17 16:06

相关推荐

06-20 21:22
已编辑
门头沟学院 Java
纯真的河老师在喝茶:答应了就跑啊,实习随便跑啊,别被pua了,md就是找个廉价劳动力,还平稳过度正式工,到时候跟你说没转正
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 11:22
怎么这么多逆天求职者,救救我救救我救救我😭
flmz_Kk:哈哈哈哈哈哈,这么多求职者,肯定有那一两个逆天的
点赞 评论 收藏
分享
评论
11
2
分享

创作者周榜

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