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

获得积分最多的人(一)

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

问题:请你写一个SQL查找积分增加最高的用户的名字,以及他的总积分是多少(此题数据保证积分最高的用户有且只有1个)

问题拆解:1.先按照表grade_info中的user_id分组,对字段grade_num求和

(SELECT user_id, SUM(grade_num) s1 FROM grade_info
GROUP BY user_id

2.在步骤1的基础上求出分组后sum(grade_num)的最大值

ORDER BY s1 desc
LIMIT 1

3.将步骤1和步骤2组合在一起创建新表r1 ,将r1和user表链接,将user_id替换成name即可。

以上。

SELECT name, s1 FROM
	(SELECT user_id, SUM(grade_num) s1 FROM grade_info
	GROUP BY user_id
	ORDER BY s1 desc
	LIMIT 1) r1
JOIN user u 
ON r1.user_id= u.id
全部评论

相关推荐

01-17 10:48
门头沟学院 Java
xxxxOxo:这公司幽默得很,要了简历半天一点动静都没有,过一会就给你发个邮件让你做测试,做完又没后文了,纯溜人
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务