select
    em.employee_id employee_id,
    em.employee_name employee_name,
    pe.performance_score first_half_2024_score,
    rank() over(partition by pe.project_id order by performance_score desc, pe.employee_id) project_group_rank,
    em.department department,
    pr.project_name project_group
from(
    employees em join performance pe on em.employee_id = pe.employee_id
    join projects pr on pe.project_id = pr.project_id
)
where
    pr.start_date between '2024-01-01' and '2024-07-01'
order by
    pe.project_id, project_group_rank, pe.employee_id