#需要满足3个条件: 作答时间< avg(同类作答时间) ;   分数>avg(同类分数); emp_level < 7

# 先构建临时表,第一个生成两类的平均时间,第二个生成两类的平均分数
with avg_time_table as (
    select exam_id,avg(timestampdiff(minute, start_time, submit_time)) as avg_time
    from exam_record 
    group by exam_id),
     avg_score_table as (
    select exam_id,avg(score) as avg_score
    from exam_record 
    group by exam_id),
    new_record as (
        select emp_id, exam_id,timestampdiff(minute, start_time, submit_time) as time,score
        from exam_record)

select nr.emp_id, 
       ei.emp_level,
       exi.tag
from new_record nr
join avg_time_table att on nr.exam_id = att.exam_id
join avg_score_table ast on nr.exam_id = ast.exam_id
join emp_info ei on ei.emp_id = nr.emp_id
join examination_info exi on exi.exam_id = nr.exam_id
where nr.time < att.avg_time and nr.score > ast.avg_score and ei.emp_level<7
order by nr.emp_id, nr.exam_id