안녕하세요!
해커랭크의 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 를 기준으로 오름차순 정렬한다.
'배우기 > SQL' 카테고리의 다른 글
SQL_WINDOW FUNCTION(윈도우 함수)_집계(SUM/MIN/MAX..), 비집계(LAG, LEAD..)_MySQL (0) | 2022.04.28 |
---|---|
SQL_WINDOW FUNCTION(윈도우 함수)_순위/순서(RANK, DENSE_RANK, ROW_NUMBER)_MySQL (0) | 2022.04.28 |
SQL 조인(INNER / LEFT / RIGHT JOIN) 알아보기_MySQL (0) | 2022.04.24 |
HackerRank - Contest Leaderboard(조인, 서브쿼리)_MySQL (0) | 2022.04.21 |
HackerRank - Placements(조인, 서브쿼리/with 문)_MySQL (0) | 2022.04.21 |
댓글