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

相关推荐

牛客37185681...:马德,我感觉这是我面过最恶心的公司,一面是两个女hr,说什么实习前几个月属于试用期,试用期过了才能转成正式实习生,我***笑了,问待遇就是不说,问能不能接受全栈,沙币公司
如果可以选,你最想去哪家...
点赞 评论 收藏
分享
09-22 22:22
中山大学 Java
双尔:赌对了,不用经历秋招的炼狱真的太好了,羡慕了
点赞 评论 收藏
分享
评论
28
收藏
分享

创作者周榜

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