select
e.employee_id,
e.employee_name,
coalesce(pe.performance_score,0) as first_half_2024_score,
row_number() over (partition by pr.project_id order by pe.performance_score desc,e.employee_id asc) as project_group_rank,
e.department,
pr.project_name as project_group
from
employees e
left join performance pe on e.employee_id=pe.employee_id
inner join projects pr on pr.project_id=pe.project_id and pr.start_date between '2024-01-01' and '2024-07-01'
order by
pr.project_id asc,project_group_rank asc,e.employee_id asc
from employees e
left join performance p on e.id = p.eid
inner join projects pr on pr.id = p.pid and pr.start_date between ...
第三个inner join不会保留第一个表的所有行

京公网安备 11010502036488号