题解 | #试卷完成数同比2020年的增长率及排名变化#

试卷完成数同比2020年的增长率及排名变化

http://www.nowcoder.com/practice/13415dff75784a57bedb6d195262be7b

SELECT tag, exam_cnt_20, exam_cnt_21,
    CONCAT(ROUND((exam_cnt_21 - exam_cnt_20) / exam_cnt_20 * 100, 1), '%') AS growth_rate,
    exam_cnt_rank_20, exam_cnt_rank_21,
    CAST(exam_cnt_rank_21 AS SIGNED) - CAST(exam_cnt_rank_20 AS SIGNED) AS rank_delta
FROM (
    -- 2020年上半年各类试卷做完次数排名
    SELECT tag, exam_cnt_20,
        RANK()OVER(ORDER BY exam_cnt_20 DESC) AS exam_cnt_rank_20
    FROM (
        -- 计算2020年上半年各类试卷做完次数
        SELECT tag,
            COUNT(exam_id) AS exam_cnt_20
        FROM examination_info 
            JOIN exam_record
            USING(exam_id)
        WHERE submit_time IS NOT NULL
            AND YEAR(submit_time) = '2020'
            AND MONTH(submit_time) <= 6
        GROUP BY tag
    )exam_cnt_20_table
)t1 JOIN (
    -- 2021年上半年各类试卷做完次数排名
    SELECT tag, exam_cnt_21,
    RANK()OVER(ORDER BY exam_cnt_21 DESC) AS exam_cnt_rank_21
    FROM (
        -- 计算2021年上半年各类试卷做完次数
        SELECT tag,
            COUNT(exam_id) AS exam_cnt_21
        FROM examination_info 
            JOIN exam_record
            USING(exam_id)
        WHERE submit_time IS NOT NULL
            AND YEAR(submit_time) = '2021'
            AND MONTH(submit_time) <= 6
        GROUP BY tag
    )exam_cnt_21_table
)t2 USING(tag)
ORDER BY growth_rate DESC, exam_cnt_rank_21 DESC
全部评论

相关推荐

10-29 18:20
济南大学 Java
用微笑面对困难:他不是人事吗,怎么净特么不干人事
点赞 评论 收藏
分享
10-22 12:03
山东大学 Java
程序员小白条:26届一般都得有实习,项目可以随便写的,如果不是开源社区的项目,随便包装,技术栈也是一样,所以本质应该找学历厂,多投投央国企和银行,技术要求稍微低一点的,或者国企控股那种,纯互联网一般都得要干活
应届生简历当中,HR最关...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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