배우기/SQL
HackerRank - New Companies (SELECT 절 서브쿼리)_MySQL
인사잘해
2022. 4. 24. 22:48
안녕하세요!
해커랭크의 New Companies 문제입니다.
- 문제
각 회사는 아래의 계층을 따른다.
'Founder - Lead Manager - Senior Manager - Manager - Employee'
아래의 주어진 테이블을 참조하여
company_code, founder name, lead manager 의 수, senior manager 의 수, manager 의 수,
employee 의 수를 조회한다. 결과는 company_code 의 오름차순으로 정렬한다.
- 테이블
- 쿼리
1. SELECT 절 서브쿼리
select C.company_code, C.founder
, (select count(distinct lead_manager_code) from lead_manager
where company_code = C.company_code) as ld
, (select count(distinct senior_manager_code) from senior_manager
where company_code = C.company_code) as sn
, (select count(distinct manager_code) from manager
where company_code = C.company_code) as mn
, (select count(distinct employee_code) from employee
where company_code = C.company_code) as ep
from company as C
order by company_code
1) company_code, founder 는 Company 테이블에서 찾는다.
2) 직급 별 인원 수는 where 절에 Company 테이블과 company_code 가 같은 조건을
각각의 테이블(Lead_Manager, Senior_Manager, Manager, Employee)에서 찾는다.
3) where 조건에 해당하는 데이터는 중복 제거하여 COUNT 집계한다.
4) company_code 를 기준으로 오름차순 정렬한다.