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

相关推荐

优秀的大熊猫在okr...:多益:此贼,必有同谋,按律,该当连坐!
你不能接受的企业文化有哪...
点赞 评论 收藏
分享
02-14 12:40
门头沟学院 Java
程序员花海:1.面试要求必须Java笔试不一定 2.难度对等秋招 远超于日常实习是因为同一批次且转正很多 竞争压力大 3.第一个加点指标,上线了就把接口性能加上去 使用本地缓存这个不算亮点 只是技术选型,要把为什么采用这个和背后的思考写出来而不是单纯堆叠技术没意义 4.八股要一直看 很容易忘记 5.拼团交易这个老问题 堆积技术 另外建议你把奖项合并到教育背景 没必要拆出来放最后
我的简历长这样
点赞 评论 收藏
分享
评论
28
收藏
分享

创作者周榜

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