1075. Project Employees I

Question:

https://leetcode.com/problems/project-employees-i/

Solution:

select 
p.project_id, 
round(avg(e.experience_years),2) as average_years
from Project p
    left join Employee e 
        on p.employee_id = e.employee_id
group by 1
order by 1

1076. Project Employees II

Question:

https://leetcode.com/problems/project-employees-ii/

Solution:

select distinct 
project_id
from(
    select 
    project_id, 
    rank() over(order by employee_count desc) as r
    from(
        select 
        project_id, 
        count(distinct employee_id) as employee_count
        from Project
        group by 1
    ) a
) b
where r = 1

1077. Project Employees III

Question:

https://leetcode.com/problems/project-employees-iii/

Solution:

select 
b.project_id, 
b.employee_id
from(
    select 
    a.project_id,
    a.employee_id, 
    a.experience_years, 
    rank() over(partition by project_id order by experience_years desc) as r
    from(
    select 
        e.employee_id, 
        p.project_id, 
        e.experience_years
    from Project p
        right join Employee e 
            on p.employee_id = e.employee_id
    ) a
) b
where b.r = 1 
and b.project_id is not null
order by 1,2

Leave a Reply