select
e.employee_id,
employee_name,
performance_score as first_half_2024_score,
row_number()over(
partition by pf.project_id
order by performance_score desc, pf.employee_id asc
) as project_group_rank,
department,
project_name as project_group
from
employees e
inner join performance pf on e.employee_id = pf.employee_id
inner join projects pj on pj.project_id = pf.project_id
where
start_date >= '2024-01-01'
and start_date <= '2024-07-01'
order by
pf.project_id asc,
project_group_rank asc,
e.employee_id asc;