首页 > 试题广场 >

分析员工在不同项目中的绩效表现以及所属部门的平均绩效情况

[编程题]分析员工在不同项目中的绩效表现以及所属部门的平均绩效情况
  • 热度指数:905 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
【背景】:一家公司需要分析员工在不同项目中的绩效表现以及所属部门的平均绩效情况。
【原始表】:
employee_projects(员工项目)表:
  • employee_id (员工 ID): 员工的唯一标识符
  • project_id (项目 ID): 员工参与的项目 ID
  • performance_score (绩效得分): 员工在该项目中的绩效得分

department_info(部门信息)表:
  • employee_id (员工 ID): 员工的唯一标识符
  • department_id (部门 ID): 部门的唯一标识符
  • department_name (部门名称): 部门的名称

【要求】:根据上面这两个表格,查询每个部门中绩效得分高于该部门平均绩效得分的员工信息。查询出来的数据按照员工 ID 升序排列。要求查询出来的表格的字段如下:
  • employee_id: 员工 ID。
  • department_name: 部门名称。
  • performance_score: 绩效得分。
【示例】:
employee_projects(员工项目)表:

department_info(部门信息)表:

【按要求查询出来的表】

【解释】
上述表中,员工共有5个,2个研发部,3个市场部的,市场部的绩效平均分是85,研发部的绩效平均分是80,超过市场部平均分的分别是员工ID 2和5,超过研发部绩效平均分的是员工ID 1
示例1

输入

DROP TABLE IF EXISTS employee_projects;
DROP TABLE IF EXISTS department_info;
-- 创建表
CREATE TABLE employee_projects (
    employee_id INT PRIMARY KEY,
    project_id INT,
    performance_score INT
);

CREATE TABLE department_info (
    employee_id INT PRIMARY KEY,
    department_id INT ,
    department_name VARCHAR(50)
);

-- 插入数据
INSERT INTO employee_projects (employee_id, project_id, performance_score)
VALUES (1, 1, 85),
       (2, 2, 90),
       (3, 1, 75),
       (4, 2, 75),
       (5, 2, 90);

INSERT INTO department_info (employee_id, department_id,department_name)
VALUES (1, 1, '研发部'),
       (2, 2, '市场部'),
       (3, 1, '研发部'),
       (4, 2, '市场部'),
       (5, 2, '市场部');

select * from employee_projects;
select * from department_info;

输出

employee_id|department_name|performance_score
1|研发部|85
2|市场部|90
5|市场部|90
头像 五首绝句哈
发表于 2025-06-19 10:58:08
SELECT employee_id,department_name,performance_score FROM( SELECT a.*,b.department_name,avg(a.performance_score) OVER (PARTITION BY project_id 展开全文
头像 eagle10
发表于 2025-07-17 10:06:11
with t1 as( select distinct department_name, avg(performance_score) over ( partition by department_name ) as avg_perf 展开全文
头像 马国成好样的
发表于 2025-07-11 16:17:13
select e.employee_id , d.department_name , e.performance_score from employee_projects e left join department_info d on e.employee_id = d.employee_id l 展开全文
头像 牛客0501
发表于 2025-06-30 16:22:40
select t2.employee_id employee_id, t2.department_name department_name, performance_score from employee_projects t1 join department_inf 展开全文
头像 牛客157060173号
发表于 2025-07-21 17:14:01
with t1 as ( select project_id ,round(avg(performance_score),2) avg_performance_score from employee_projects group by 1 ) select e.emp 展开全文
头像 牛客题解官
发表于 2025-07-25 17:19:39
最近做了京东的24年春招题,题目如下: 题目分析 本题要求找出绩效分数高于本部门平均绩效分数的员工,输出员工ID、部门名称和绩效分数。 输出字段: employee_id(员工ID) department_name(部门名称) performance_score(绩效分数) 输出顺序:按员工I 展开全文
头像 想当offer收割机的小松鼠很想回家
发表于 2025-06-19 18:49:09
#查询每个部门中绩效得分高于该部门平均绩效得分的员工信息。查询出来的数据按照员工 ID 升序排列 select employee_id,department_name,performance_score from( select a.employee_id,department_name,p 展开全文
头像 好事正酿
发表于 2025-06-19 20:25:04
with t1 as ( select department_name, avg(performance_score) as avg_performance_score from empl 展开全文
头像 喜欢修勾的中国人不放弃
发表于 2025-07-23 22:16:48
select employee_id, department_name, performance_score from ( select e.employee_id, department_name, performance_score, av 展开全文
头像 高大的勇士在吐槽
发表于 2025-07-11 23:11:59
select e.employee_id, department_name, performance_score from employee_projects e left join department_info d on e.employee_id=d 展开全文