最开始有这个想法,但不知道是否有这个函数,便看了一下题解里面有这样一个函数nth_values()over()便引起了我的兴趣。就去网上查阅了以下,就是我想到做题的最优解。便自己试了一下,居然成功了,哈哈哈

select distinct ei.exam_id,
    ei.duration,
    ei.release_time
from examination_info as ei
left join
(select exam_id ,
    nth_value(timestampdiff(minute, start_time, submit_time), 2) over (partition by exam_id order by timestampdiff(minute, start_time, submit_time) desc) as R,
    nth_value(timestampdiff(minute, start_time, submit_time), 2) over (partition by exam_id order by timestampdiff(minute, start_time, submit_time) asc) as r1
from exam_record ) as a
on ei.exam_id = a.exam_id
where (a.R - a.r1) > (ei.duration / 2)
order by ei.exam_id desc;