WITH a AS(
    SELECT
        exam_id,
        timestampdiff(second,start_time, submit_time) as finish,
        DENSE_RANK() OVER (PARTITION BY exam_id ORDER BY timestampdiff(second,start_time, submit_time) DESC)  as fastrank,
        DENSE_RANK() OVER (PARTITION BY exam_id ORDER BY timestampdiff(second,start_time, submit_time)) as slowrank
    FROM
        exam_record
),

a1 AS(
    SELECT
        exam_id,
        finish as finish1
    FROM
        a
    WHERE
        fastrank = 2
),

a2 AS(
    SELECT
        exam_id,
        finish as finish2
    FROM
        a
    WHERE
        slowrank = 2
)

SELECT
    exam_id,
    duration,
    release_time
FROM
    a1
JOIN 
    a2 USING(exam_id)
JOIN
    examination_info USING(exam_id)
WHERE
    abs(finish1 - finish2) > duration*60/2
ORDER BY
    exam_id DESC