获得积分最多的人(一)

获得积分最多的人(一)

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-12 17:46
门头沟学院 Java
运营你豪哥:来说重点: ​1.项目前置,时间倒序。​​ 2.​项目描述强化结果与量化效果(STAR原则里的R)。​​ ​3.个人技能精炼,明确掌握程度,突出核心。​​ ​4.增加强有力开头的个人总结部分。​​ 5.​优化教育背景(成绩排名)、合并奖项与活动。​​
听劝,我这个简历该怎么改...
点赞 评论 收藏
分享
评论
11
2
分享

创作者周榜

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