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

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

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

#需要按tag进行分类,筛选出2020和2021各上半年的数据,表格整合,最后进行筛选
#这里要注意出现计算为负数的情况会报错
select
tag
,exam_cnt_20
,exam_cnt_21
,concat(round(((exam_cnt_21-exam_cnt_20)/exam_cnt_20)*100,1),'%') growth_rate
,exam_cnt_rank_20
,exam_cnt_rank_21
,case when exam_cnt_rank_21 >= exam_cnt_rank_20 then round((exam_cnt_rank_21-exam_cnt_rank_20)) 
      else concat('-',round((exam_cnt_rank_20-exam_cnt_rank_21))) end rank_delta
#,cast(round(exam_cnt_21-exam_cnt_20) as signed) 结果转换为负数
from
(
    select
    tag
    ,start_year
    ,lag(exam_cnt)over(partition by tag order by start_year) exam_cnt_20
    ,exam_cnt exam_cnt_21
    ,lag(exam_cnt_rank)over(partition by tag order by start_year) exam_cnt_rank_20
    ,exam_cnt_rank exam_cnt_rank_21
    from
    (
        select
        tag
        ,start_year
        ,exam_cnt
        ,rank()over(partition by start_year order by exam_cnt desc) exam_cnt_rank
        from
        (
            #求今年上半年和去年上半年的数据进行列表合并
            select
            tag
            ,substring(submit_time,1,4) start_year
            ,count(submit_time) exam_cnt
            from exam_record er left join examination_info ei
            on er.exam_id = ei.exam_id
            where substring(cast(submit_time as date),1,7) >= '2020-01'
            and substring(cast(submit_time as date),1,7) < '2020-07'
            group by 1,2

            union all

            select
            tag
            ,substring(submit_time,1,4) start_year
            ,count(submit_time)
            from exam_record er left join examination_info ei
            on er.exam_id = ei.exam_id
            where substring(cast(submit_time as date),1,7) >= '2021-01'
            and substring(cast(submit_time as date),1,7) < '2021-07'
            group by 1,2
        ) table1
    ) table2
) table3
where start_year = 2021
and exam_cnt_20 is not null
order by growth_rate desc 
,rank_delta desc

全部评论

相关推荐

竟然收到了测评听说是双机位
投递拼多多集团-PDD等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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