题解 | #获得积分最多的人(二)#子查询+分组聚合筛选解决,比较好理解!

获得积分最多的人(二)

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

1.求出用户总积分

2.求出用户总积分最高的用户积分

3.对用户总积分表进行筛选,总积分等于最高积分的就筛选出来

4.连接user表


select t2.user_id,name,s
from (select user_id,sum(grade_num) s -- 求出用户总积分
      from grade_info
      group by user_id  
      having s=(select max(t1.total) -- 求出用户总积分最高的用户积分
                from (select user_id,sum(grade_num) total
                      from grade_info
                      group by user_id
                     ) as t1
               )
     ) as t2,user
where t2.user_id=user.id
order by  t2.user_id







全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

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