New Companies

https://www.hackerrank.com/challenges/the-company/problem?isFullScreen=true

문제설명

아래 표 스키마에 따라 company_code, 설립자 이름, 총 리드 매니저 수, 총 시니어 매니저 수, 총 매니저 수, 총 직원 수를 출력하는 쿼리를 작성합니다. company_code를 오름차순으로 출력 순서를 지정합니다.

disqus_pic4

_C1사의 리드 매니저는 LM1뿐입니다. LM1 산하에 SM1과 SM2 두 명의 시니어 매니저가 있습니다. SM1 산하에 M1이라는 매니저가 한 명 있습니다. M1 산하에 E1과 E2라는 두 명의 직원이 있습니다.

C2사의 리드 매니저는 LM2뿐이며, LM2 산하에 SM3라는 선임 매니저가 한 명 있습니다. SM3 부장 밑에는 M2 부장과 M3 부장 두 명이 있으며, M2 부장 밑에는 E3 사원 한 명과 M3 부장 밑에 E4 사원 한 명이 있습니다._


풀이

select C.company_code,
       C.founder,
       count(DISTINCT L.lead_manager_code),
       count(DISTINCT S.senior_manager_code),
       count(DISTINCT M.manager_code),
       count(DISTINCT E.employee_code)
FROM Company C JOIN Lead_Manager L ON C.company_code=L.company_code
               JOIN Senior_Manager S ON C.company_code=S.company_code
               JOIN Manager M ON C.company_code=M.company_code
               JOIN Employee E ON C.company_code=E.company_code
GROUP BY company_code, founder
ORDER BY company_code;

+++ 2023-02-08 일자로 Programmers에 올라온 MYSQL 문제는 모두 풀었다. 이후로는 Hackerrank OR LeetCODE의 문제를 풀 예정이다.