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

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

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

SELECT distinct exam_id, duration, release_time
FROM
# 用dense_rank()基于每种类型试卷排序,获得最短答题时间和最短时间排名
(SELECT 
    exam_id,
    time_spend fasttime,
    DENSE_RANK()OVER(PARTITION BY exam_id ORDER BY time_spend) fast
FROM(
    SELECT 
        exam_id, 
        timestampdiff(minute, start_time, submit_time) time_spend
    FROM exam_record er
) t1) t11
JOIN
# 用dense_rank()基于每种类型试卷排序,获得最长答题时间和最长时间排名
(SELECT 
    exam_id,
    time_spend slowtime,
    DENSE_RANK()OVER(PARTITION BY exam_id ORDER BY time_spend DESC) slow
FROM(
    SELECT 
        exam_id, 
        timestampdiff(minute, start_time, submit_time) time_spend
    FROM exam_record er
) t2) t21
    USING(exam_id)
JOIN examination_info 
    USING(exam_id)
# 筛选出时间最短的第二名和时间最长的第二名
# 利用时间差的条件进一步筛选
WHERE fast = 2 and slow = 2 and (slowtime - fasttime) > (duration)/2
ORDER BY exam_id DESC

全部评论

相关推荐

05-26 22:25
门头沟学院 Java
Java小肖:不会是想叫你过去把你打一顿吧,哈哈哈
点赞 评论 收藏
分享
昨天 12:24
重庆大学 运营
坏消息:和好工作擦肩而过
给点吧求求了:怎么可能因为差几秒,估计就是简历更好看婉拒了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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