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

获得积分最多的人(三)

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

SELECT distinct id, name, score FROM
(SELECT id, name, final_score as score, DENSE_RANK() over(order by final_score DESC) as rk FROM
(SELECT id, name, jf+kf_new as final_score from(
SELECT x.id, x.name, jf, IFNULL(kf,0) as kf_new FROM
(SELECT id, name, sum(grade_num) over(partition by user_id) as jf from user
join grade_info on user.id = grade_info.user_id
WHERE type = 'add') x
left JOIN
(SELECT id, name, -sum(grade_num) over(partition by user_id) as kf from user
join grade_info on user.id = grade_info.user_id
WHERE type = 'reduce') y
ON x.id = y.id) fin) fin_new) a
WHERE rk = 1
order BY id

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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