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

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

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

select exam_id,duration,release_time from 
    (select exam_id,duration,release_time,t from
        (
        select exam_id,duration,release_time,timestampdiff(second,start_time,submit_time) as t,
            row_number()over(partition by er.exam_id order by 
                             timestampdiff(second,start_time,submit_time)
                             desc) as r1,
            row_number()over(partition by er.exam_id order by 
                             timestampdiff(second,start_time,submit_time)
                             ) as r2
            from exam_record as er join examination_info as ei using(exam_id)
            where timestampdiff(second,start_time,submit_time) is not null
        ) as a
    where r1=2 or r2=2
    ) as b
group by exam_id
having (max(t)-min(t)>=(duration*30))
order by exam_id desc
#子查询嵌套
#先对时间差进行正序和倒序排序,在选择分别为2的表示第二快和第二慢,这样每个试卷都可以
#得到两行数据,之后再用最大值减最小值大于时间的一般即可(这里用秒)
全部评论
这个解法好,易懂
点赞 回复 分享
发布于 2023-12-04 18:38 浙江

相关推荐

不放弃的小鱼干很洒脱:好可爱的离职理由
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
02-26 15:46
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务