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

获得积分最多的人(一)

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

# 方法一
select gs.name , max(`grade_sum`)
from
(
   SELECT u.name , SUM(g.grade_num) as `grade_sum` FROM
   user as u inner join grade_info as g on u.id = g.user_id
   group by g.user_id
) as gs
group by name
ORDER BY `grade_sum` desc #加了group by 就在分好的每个组内排序
limit 0,1

# 方法2:最蠢的方法
# select gs.name , max(`grade_sum`)
# from
# (
#    SELECT u.name , SUM(g.grade_num) as `grade_sum` FROM
#    user as u inner join grade_info as g on u.id = g.user_id
#    group by g.user_id
# ) as gs
# where `grade_sum` = 
# (
#     select  max(`grade_sum`)
#     from
#         (
#              SELECT u.name , SUM(g.grade_num) as `grade_sum` FROM
#              user as u inner join grade_info as g on u.id = g.user_id
#              group by g.user_id
#         ) as gs
# )
全部评论

相关推荐

点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务