【背景】:公司需要分析每个员工在不同项目中的绩效情况,现在需要你根据下面三个数据表,查询出每个员工在 2024 年上半年的绩效总评分以及在不同部门的绩效排名。 【原始表】: employees(员工)表: employee_id (员工 ID): 员工的唯一标识符 employee_name (员工姓名): 员工的姓名 department (部门): 员工所属的部门 projects(项目)表: project_id (项目 ID): 项目的唯一标识符 project_name (项目名称): 项目的名称 start_date (开始日期): 项目的开始日期 performance(绩效)表: performance_id (绩效 ID): 绩效的唯一标识符 employee_id (员工 ID): 员工的唯一标识符,用于关联员工表中的员工 project_id (项目 ID): 项目的唯一标识符,用于关联项目表中的项目 performance_score (绩效评分): 员工在该项目中的绩效评分 【要求】:根据上面这三个表格,查询每个员工的绩效情况,包含的字段:员工 ID、员工姓名、该员工在 2024 年上半年的绩效评分, 该员工在所属项目排名,该员工所属部门名称,该员工所属项目名称。查询出来的数据按照项目ID升序排列,再按照在所属项目的绩效排名升序排列,排名一致的按照员工ID升序排列。 employee_id: 员工的唯一标识符。 employee_name: 员工的姓名。 first_half_2024_score: 2024 年上半年的绩效评分。上半年 [ 2024-01-01——2024-07-01) project_group_rank: 在所属项目的绩效排名。 department: 所属部门。 project_group: 所属项目组。 【示例】 employees(员工)表: projects(项目)表: performance(绩效)表: 【按照要求查询出来的表】 【解释】 上述示例中项目C的时间是2023-03-01,在查询要求中查询的是2024年上半年的绩效,所以在查询数据中不展示。对于项目组A2024-01-01有3个员工在项目中工作,分别是是employee_id 1、5、2,按照成绩排序顺序是1、5、2,1、5成绩一致都是80,然后再按照employee_id升序排列
示例1
输入
DROP TABLE IF EXISTS employees;
DROP TABLE IF EXISTS projects;
DROP TABLE IF EXISTS performance;
-- 创建表
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
employee_name VARCHAR(50),
department VARCHAR(50)
);
CREATE TABLE projects (
project_id INT PRIMARY KEY,
project_name VARCHAR(50),
start_date DATE
);
CREATE TABLE performance (
performance_id INT PRIMARY KEY,
employee_id INT,
project_id INT,
performance_score INT
);
-- 插入数据
INSERT INTO employees (employee_id, employee_name, department)
VALUES (1, '张三', '研发部'),
(2, '李四', '市场部'),
(3, '王五', '市场部'),
(4, '赵六', '研发部'),
(5, '周七', '研发部');
INSERT INTO projects (project_id, project_name, start_date)
VALUES (1, '项目 A', '2024-01-01'),
(2, '项目 B', '2024-03-01'),
(3, '项目 C', '2023-03-01');
INSERT INTO performance (performance_id, employee_id, project_id, performance_score)
VALUES (1, 1, 1, 80),
(2, 2, 1, 70),
(3, 3, 2, 95),
(4, 4, 2, 88),
(5, 5, 1, 80),
(6, 5, 3, 80),
(7, 1, 2, 88);
select * from employees;
select * from projects;
select * from performance;
输出
employee_id|employee_name|first_half_2024_score|project_group_rank|department|project_group
1|张三|80|1|研发部|项目 A
5|周七|80|2|研发部|项目 A
2|李四|70|3|市场部|项目 A
3|王五|95|1|市场部|项目 B
1|张三|88|2|研发部|项目 B
4|赵六|88|3|研发部|项目 B
加载中...