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不会保留第一个表的所有行