SQL 90 ) 获得积分最多的人(二)

获得积分最多的人(二)

http://www.nowcoder.com/questionTerminal/b6248d075d2d4213948b2e768080dc92

使用排序函数rank()over()嵌套sum()over()解决

select u.id, u.name , a.grade
from
(select user_id , g.grade , rank()over(order by g.grade desc) r_number
from
(select user_id, sum(grade_num)over(partition by user_id) grade
from grade_info)g
group by user_id)a
join
user as u
on a.user_id = u.id
where a.r_number = 1
order by u.id asc;
SQL 文章被收录于专栏

SQL

全部评论
把子查询里的group by删掉就好了
2 回复 分享
发布于 2021-11-15 09:42
select distinct u.id,u.name,t.grade_num from user u , (select *,dense_rank()over(order by grade_num desc)as rn from (select user_id,sum(grade_num)over(partition by user_id ) as grade_num from grade_info) a) t where u.id=t.user_id and rn =1 order by u.id;
点赞 回复 分享
发布于 2024-07-26 12:06 江苏
select distinct u.id, u.name, a.grade from (select user_id, g.grade, rank()over(order by g.grade desc) r_number from (select user_id, sum(grade_num)over(partition by user_id) grade from grade_info) g) a join user as u on a.user_id = u.id where a.r_number = 1 order by u.id group by去掉就好了
点赞 回复 分享
发布于 2023-12-12 18:17 北京
为什么在mysql中不能通过呢,在sqlite就可以
点赞 回复 分享
发布于 2021-11-30 21:08

相关推荐

09-15 18:37
已编辑
门头沟学院 后端工程师
让校招回归公平好吗。各大公司学习一下
秋招路在何方:互娱和雷火的笔试是确实是我见过最严格的,支持
点赞 评论 收藏
分享
08-10 12:43
临沂大学 Java
等闲_:1,换一个模版,这个模版没有人会看的 2,项目太烂大街了,也太简单了,找AI优化一下描述,项目可以烂大街,但是简历不能烂大街,或者找项目换一下 3,如果没什么奖的话,把学校放到下面,添加一个个人描述,简单些,让简历丰富一些 4,改完之后海投试试,但是我真的很建议别走java了,可以试试前端
点赞 评论 收藏
分享
评论
28
收藏
分享

创作者周榜

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