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

获得积分最多的人(一)

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

第一次写的代码使用了嵌套子查询,并在嵌套查询里使用了聚合函数,不够简洁,原因是对join (inner join)的理解不够深。

select 
    u.name,
    t.grade_num
from user u
join (
    select 
        user_id,
        sum(grade_num) as grade_num
    from grade_info
    where type = 'add'
    group by user_id
) t
on u.id = t.user_id
order by t.grade_num desc
limit 1



更加简洁的代码,直接inner join。

SELECT u.name, SUM(g.grade_num) AS grade_sum
FROM user u
JOIN grade_info g ON u.id = g.user_id
GROUP BY u.id, u.name
ORDER BY grade_sum DESC
LIMIT 1;

全部评论

相关推荐

03-02 08:18
集美大学 Java
钱嘛数字而已:没有赛事奖项么?另外,项目经历字有点多哈,建议突出一下重点:用的什么技术,解决什么问题,达到什么效果。
大家都开始春招面试了吗
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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