题解 | #获得积分最多的人(二)#

获得积分最多的人(二)

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

1.将grade_info表按照用户分数求和

select user_id,sum(grade_num) grades
from grade_info 
group by user_id; t2

2.与user表关联

select id,name,grades from 
t2 join user t1
on t1.id = t2.user_id; t3

3.给出排序(利用窗口函数)

select id,name,grades,rank() over(order by grades desc) rk
from t3;t4

4.输出最高

select id,name,grades from t4
where rk = 1

最终的sql

select id,name,grades from 
(select id,name,grades,rank() over(order by grades desc) rk
from (select id,name,grades from 
(select user_id,sum(grade_num) grades
from grade_info 
group by user_id)t2 join user t1
on t1.id = t2.user_id)t3)t4
where rk = 1
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-29 17:30
找实习找着找着就要进入7月了,马上秋招也要开始了,找实习还有意义吗?
绝迹的星:有面就面, 没面上就当日薪4位数大佬免费培训, 面上了再考虑要不要实习
点赞 评论 收藏
分享
qq乃乃好喝到咩噗茶:院校后面加上211标签,放大加粗,招呼语也写上211
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-01 11:47
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

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