with tiaojian as (
select
t.exam_id,
sum(case when t.m=2 then diff when t.d=2 then -diff end)/60 as pt
from(
select
exam_id,
timestampdiff(second,start_time,submit_time) as diff,
row_number()over(partition by exam_id order by timestampdiff(minute,start_time,submit_time) desc) as m,
row_number()over(partition by exam_id order by timestampdiff(minute,start_time,submit_time) asc) as d
from exam_record
) as t
group by t.exam_id
)


select
t.exam_id,
ef.duration,
ef.release_time
from tiaojian t left join examination_info ef on t.exam_id=ef.exam_id
where
t.pt>=ef.duration/2
order by t.exam_id desc