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

获得积分最多的人(一)

http://www.nowcoder.com/practice/1bfe3870034e4efeb4b4aa6711316c3b

SELECT name,sum(grade_num) g_sum
FROM user u JOIN grade_info g ON u.id=g.user_id
GROUP BY id
ORDER BY sum(grade_num) DESC
LIMIT 1

由于此题数据保证积分最高的用户有且只有1个,使用limit即可 如果默认有并列第一,那么使用from子查询,在子查询中使用desen_rank即可


SELECT name,grade_sum
FROM (SErade_sum,dense_rank() over(ORDER by grade_sum DESC) r
     FROM (SELECT distinct user_id,sum(grade_num) over(PARTITION BY user_id) grade_sum
          FROM grade_info) gf) gr
    JOIN user u ON u.id=gr.user_id
WHERE r=1
全部评论

相关推荐

Twilight_m...:还是不够贴近现实,中关村那块60平房子200万怎么可能拿的下来,交个首付还差不多
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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