with
t1 as(
select
exam_id,
avg(timestampdiff(second,start_time,submit_time)/60) as avg_time,
avg(score) as avg_score
from
exam_record
group by
exam_id
)
,
t2 as(
select
emp_id,
emp_level,
exam_id,
tag as exam_tag,
score,
timestampdiff(second,start_time,submit_time)/60 as use_time
from
exam_record
left join emp_info using(emp_id)
left join examination_info using(exam_id)
where
emp_level<7
)
,
t3 as(
select
emp_id,
emp_level,
exam_tag
from
t2 left join t1 using(exam_id)
where
use_time<avg_time
and
score>avg_score
)
select * from t3