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

获得积分最多的人(三)

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

SELECT id,name,grade_sum
FROM
(-- 获得每个人对应的总分数grade_sum
	SELECT  user_id,
                grade_sum,
                RANK() OVER(ORDER BY t.grade_sum DESC) AS rk
	FROM
	(
		SELECT  user_id,
                        SUM(IF(type = 'add',grade_num, -grade_num)) AS grade_sum
		FROM grade_info
                GROUP BY user_id
	) AS t
) AS m
JOIN user AS n
ON n.id = m.user_id
WHERE rk = 1

全部评论

相关推荐

09-09 16:12
已编辑
成都理工大学 Java
future0210:学java就是好啊,啥都能转
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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