题解 | #第二快/慢用时之差大于试卷时长一半的试卷#

第二快/慢用时之差大于试卷时长一半的试卷

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

注意:rank()过不了,要用row_number()。
因为rank()表示排名数,会出现并列情况,如两个人并列第二的情况,算第二快/慢用时之差time_diff时,会把并列第二的两个人都算进去。

sum(case when rank_slow=2 then t
                           when rank_fast=2 then -t else 0 end
                          ) as time_diff

全部代码:

select  exam_id,duration,release_time
from (
        select a.exam_id,a.release_time,sum(case when rank_slow=2 then t 
                           when rank_fast=2 then -t else 0 end
                          ) as time_diff,a.duration
        from examination_info a
        left join (
                    select exam_id
                            ,timestampdiff(second,start_time,submit_time) as t
                            ,row_number() over(partition by exam_id 
                             order by timestampdiff(second,start_time,submit_time) desc
                            ) as rank_slow
                            ,row_number() over(partition by exam_id
                            order by timestampdiff(second,start_time,submit_time)
                            ) as rank_fast
                    from exam_record
                    where submit_time is not null
                    ) b 
        on a.exam_id=b.exam_id
        -- where rank_slow=2 and rank_fast=2
        group by a.exam_id
) aa
where time_diff>duration/2*60
order by exam_id desc
全部评论

相关推荐

暴杀流调参工作者:春招又试了一些岗位,现在投递很有意思,不仅要精心准备简历,投递官网还得把自己写的东西一条一条复制上去,阿里更是各个bu都有自己的官网,重复操作无数次,投完简历卡完学历了,又该写性格测评、能力测评,写完了又要写专业笔试,最近还有些公司搞了AI辅助编程笔试,有些还有AI面试,对着机器人话也听不明白录屏硬说,终于到了人工面试又要一二三四面,小组成员面主管面部门主管面hr面,次次都没出错机会,稍有不慎就是挂。 卡学历卡项目卡论文卡实习什么都卡,没有不卡的😂
点赞 评论 收藏
分享
03-26 12:00
已编辑
门头沟学院 Java
offer魅魔_oc...:100-200每天,你还要倒贴100
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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