Kimuksung
Kimuksung 안녕하세요. 분산처리에 관심이 많은 생각하는 주니어 Data Enginner입니다.

leet code sql 570


570. Managers with at Least 5 Direct Reports

문제

  • 최소 5개 이상의 직접 보고를 받는 매니저를 구하라
문제 접근

  • Group having을 통하여 최소 5개 이상을 담당하고 있는 매니저
  • subquery 혹은 join을 통하여 쿼리 구성
  • 일반적으로 join을 통하여 구성하는게 subquery로 구성하는 것 보다 배로 빠르다.
1
2
3
4
5
6
7
8
# join query
SELECT 
    m.name
FROM Employee e
INNER JOIN Employee m
ON e.managerId = m.id
GROUP BY e.managerId
HAVING count(e.managerId) >= 5
1
2
3
4
5
6
7
8
9
10
11
# subquery
select
    name
from Employee
where id in (
    select
        managerId
    from Employee
    group by managerId
    having count(*) >= 5
)