题解 | 完成员工考核试卷突出的非领导员工

完成员工考核试卷突出的非领导员工

https://www.nowcoder.com/practice/422dcd6ae72c49c9bbec1aff90d69806

# 请你找到作答每类试卷的突出非领导员工,并输出他们的
# 员工ID(emp_info),员工等级(emp_info)和突出试卷类别(examination_info)
# 并按照员工ID升序排序,若某员工两类试卷都突出,则按照试卷ID升序排序。

# 9001试卷员工id,分数,平均分,时间,平均时间
# 9002试卷员工id,分数,平均分,时间,平均时间

# 查询每张卷子的平均分和平均时间备用
with avg_every as(
    select t1.exam_id exam_id
    ,tag exam_tag
    ,avg(score) avg_sc
    ,avg(TIMESTAMPDIFF(second,start_time,submit_time)) avg_time
    from exam_record t1
    join examination_info t2
    on t1.exam_id=t2.exam_id
    group by t1.exam_id,tag
)
,emp_target as(
    select emp_id
    ,t1.exam_id exam_id
    ,exam_tag
    from exam_record t1
    join avg_every t2
    on t1.exam_id=t2.exam_id
    where t1.score>t2.avg_sc and TIMESTAMPDIFF(second,start_time,submit_time)<avg_time
)
select t1.emp_id emp_id,emp_level,exam_tag
from emp_target t1
join emp_info t2
on t1.emp_id=t2.emp_id
where emp_level<7
order by emp_id;
# 本题要查好多字段,但分组字段只有一个。
# 先用临时表只查出分组字段及需要分组计算的字段再与其他不需要分组的字段去join在一起做好过滤。

反复复习本题思路

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务