with
-- exam_record为主表,join余下两张表,得出用户作答时长
t1 as (
select
e.emp_id,
e.exam_id,
emp_level,
tag,
timestampdiff (second, start_time, submit_time) len,
score
from
exam_record e
left join emp_info ei on e.emp_id = ei.emp_id
left join examination_info eif on e.exam_id = eif.exam_id
),
-- 算出同类试卷的 平均作答时长 和 平均分数
t2 as (
select
exam_id,
avg(len) avg_time,
avg(score) avg_score
from
t1
group by
exam_id
)
-- t1 和t2表联结,按条件过滤出答案
select
emp_id,
emp_level,
tag as exam_tag
from
t1
left join t2 on t1.exam_id = t2.exam_id
where
len < avg_time
and score > avg_score
and emp_level < 7