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;