select 
    e.employee_id,
    employee_name,
    performance_score as first_half_2024_score,
    rank() over(partition by project_id order by performance_score desc) as project_group_rank,
    department,
    project_name as project_group
from performance per join projects pro using(project_id) join employees e using(employee_id)
where start_date between '2024-01-01' and '2024-07-01'
order by project_id,project_group_rank,e.employee_id;