# 根据上面这三个表格,查询每个员工的绩效情况,包含的字段:员工 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: 所属项目组。 select e.employee_id employee_id ,employee_name ,performance_score first_half_2024_score ,row_number() over(partition by pj.project_id order by performance_score desc,e.employee_id ASC) project_group_rank ,department ,project_name project_group from performance p left join projects pj on p.project_id=pj.project_id left join employees e on p.employee_id=e.employee_id where start_date between '2024-01-01' and '2024-07-01' order by pj.project_id,project_group_rank ,employee_id;
这个还蛮简单的。只需要开个窗就好了,没有子查询和分组

京公网安备 11010502036488号