select exam_id,duration,release_time
from 
(select a.exam_id,duration,release_time,use_time,
row_number() over(partition by exam_id order by use_time desc) as r1,
row_number() over(partition by exam_id order by use_time ) as r2
from examination_info a 
left join 
(select *,timestampdiff(minute,submit_time,start_time) as use_time
 from exam_record
) b
on a.exam_id=b.exam_id 
)c 
    where r1=2 or r2=2
group by exam_id,duration,release_time
having max(use_time)-min(use_time)>duration*0.5
order by exam_id desc
    ;