출처
문제
5명 이상의 부하 직원이 있는 관리자를 찾는 솔루션을 작성합니다.
순서에 관계없이 결과 테이블을 반환합니다.
문제에 대한 해석
5명 이상을 관리하는 매니저의 이름을 조회함
풀이(MYSQL)
-- 1. 매니저의 ID를 조회
with manager as (
select id
from Employee
where id in (select managerID from Employee)
),
-- 2. 5명 이상 관리하는 매니저를 조회
con as (
select managerId
from Employee
where managerId in (select id from manager )
group by managerId
having count(*) >= 5
)
-- 3. 해당 매니저의 이름 조회
select name
from Employee
where id in (select managerId from con)
-- managerID를 기준으로 그룹화할 경우 5개 이상일때 : 5명이상을 관리하는 매니저
with manager as (
select managerID
from Employee
group by managerID
having count(*) >= 5
)
-- 의 이름
select e.name
from manager m join Employee e
on m.managerID = e.id
배운점
합칠 수 있는 쿼리는 최대한 합치기
'문제풀이 > SQL(My sql)' 카테고리의 다른 글
[문제풀이] Leet code - Monthly Transactions I (1) | 2024.07.23 |
---|---|
[문제풀이] Leet code - Students and Examinations (0) | 2024.07.22 |
[문제풀이] Leet code - Employee Bonus (0) | 2024.07.19 |
[문제풀이] Leet code - Investments in 2016 (0) | 2024.07.19 |
[문제풀이] Leet code - Game Play Analysis IV (0) | 2024.07.17 |