WITH
t AS (
SELECT
a.emp_id,
b.emp_level,
TIMESTAMPDIFF(SECOND, a.start_time, a.submit_time) AS duration_time,
a.score,
c.tag AS exam_tag
FROM
exam_record AS a
JOIN emp_info AS b ON a.emp_id = b.emp_id
JOIN examination_info AS c ON a.exam_id = c.exam_id
WHERE
b.emp_level < 7
)
SELECT
emp_id,
emp_level,
exam_tag
FROM
t
WHERE
(
(
exam_tag = '企业文化'
AND score > (
SELECT
AVG(score)
FROM
t
WHERE
exam_tag = '企业文化'
)
AND duration_time < (
SELECT
AVG(duration_time)
FROM
t
WHERE
exam_tag = '企业文化'
)
)
OR (
exam_tag = '技术水平'
AND score > (
SELECT
AVG(score)
FROM
t
WHERE
exam_tag = '技术水平'
)
AND duration_time < (
SELECT
AVG(duration_time)
FROM
t
WHERE
exam_tag = '技术水平'
)
)
)
先对考试信息表进行预处理,与另外两个表进行连接并得到每个人的考试分数,科目,作答时间并筛去emp_level>=7的领导,然后使用临时表t进行操作选出每个科目的优秀员工

京公网安备 11010502036488号