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

select
    exam_id,
    duration,
    release_time
from
    (
        select
            exam_id,
            duration,
            release_time,
            作答用时 - lag (作答用时, 1) over (
                partition by
                    exam_id
                order by
                    作答用时 asc
            ) 做差结果
        from
            (
                select
                    ei.exam_id,
                    duration,
                    release_time,
                    timestampdiff (second, start_time, submit_time) / 60 作答用时,
                    rank() over (
                        partition by
                            ei.exam_id
                        order by
                            timestampdiff (second, start_time, submit_time) / 60 desc
                    ) 从大到小排名,
                    rank() over (
                        partition by
                            ei.exam_id
                        order by
                            timestampdiff (second, start_time, submit_time) / 60 asc
                    ) 从小到大排名
                from
                    test.examination_info ei
                    join test.exam_record er on ei.exam_id = er.exam_id
            ) a
        where
            a.从大到小排名 = 2
            or a.从小到大排名 = 2
    ) b
where
    做差结果 is not null
    and 做差结果 > duration / 2
order by
    exam_id desc

全部评论

相关推荐

01-04 21:30
已编辑
河南工业大学 Java
27届学院本誓死冲击...:下次再发把个人信息隐藏掉,以防有心之人。相关课程删了,荣誉奖项只留蓝桥杯,把蓝桥杯写到教育经历里,按教育经历、实习经历、项目经历、专业技能这个顺序排版
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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