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

获得积分最多的人(三)

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

SELECT 
    tt.user_id, 
    user.name,
    tt.sum_num 
FROM 
(
    SELECT 
        * , 
        DENSE_RANK() OVER( ORDER BY sum_num DESC ) AS rk 
    FROM 
    (
        SELECT 
            user_id, 
            SUM(
                CASE 
                    WHEN type = 'add' THEN grade_num 
                    WHEN type = 'reduce' THEN -1 * grade_num
                ELSE 0 
                END 
            ) AS sum_num 
        FROM 
            grade_info 
        GROUP BY 
            user_id 
    ) AS tmp 
) AS tt 
LEFT OUTER JOIN 
    user
ON 
    tt.user_id = user.id 
WHERE rk <=1 
;

全部评论

相关推荐

mjasjon:这种trash中厂 简历过筛概率比大厂还低(除阿里系)
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务