문제 설명
Given the table schemas below, write a query to print the company_code, founder name, total number of lead managers, total number of senior managers, total number of managers, and total number of employees. Order your output by ascending company_code.
Note: The tables may contain duplicate records. The company_code is string, so the sorting should not be numeric. For example, if the company_codes are C_1, C_2, and C_10, then the ascending company_codes will be C_1, C_10, and C_2.
1. company_code, founder name, total number of lead managers, total number of senior managers, total number of managers, and total number of employees
를 select해야 됩니다.2. company_code에 따라 정렬을 수행해야 합니다.3. distinct로 중복 컬럼이 없게 해야 합니다.4. company_code가 string으로 되어 있어 숫자 타입으로 정렬하지 않아도 됩니다.
Sample Output
C1 Monika 1 2 1 2
C2 Samantha 1 1 2 2
문제 풀이
회사 조직의 상하 관계에 맞춰 Left join을 맞춰주고 group by에 없는 어트리뷰트는 count 함수로 세줄 수 있다.
그러나 Distinct로 중복되지 않게 집계해야한다.
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
LEFT JOIN Lead_Manager L
ON C.company_code = L.company_code
LEFT JOIN Senior_Manager S
ON L.lead_manager_code = S.lead_manager_code
LEFT JOIN Manager M
ON S.senior_manager_code = M.senior_manager_code
LEFT JOIN Employee E
ON M.manager_code = E.manager_code
Group by C.company_code, C.founder
ORDER BY C.company_code
'언어 & 라이브러리 > SQL' 카테고리의 다른 글
[SQL] 프로그래머스 SQL 고득점 KIT 문제 풀이 정답 -1 (0) | 2022.03.30 |
---|---|
SQLZOO The JOIN operation 문제 풀이 (0) | 2022.01.19 |
해커랭크 HackerRank Binary Tree Nodes Advanced Select (0) | 2022.01.19 |
해커랭크 HackerRank The PADS Advanced Select (0) | 2022.01.19 |
SQLZOO SELECT BASIC 문제 풀이 (0) | 2022.01.19 |
댓글