해커랭크 [New Companies]

윤태영·2024년 8월 26일
0

문제

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

  1. 엠버의 대기업 회사는 몇 개의 새로운 회사를 막 인수했습니다. 각 회사는 다음과 같은 계층 구조를 따릅니다.

  1. 아래 표 스키마가 주어지면 company_code, 설립자명, 총 리드매니저 수, 총 고위 관리자 수, 총 관리자 수, 총 직원 수를 출력하는 쿼리를 작성하고 출력물을 오름차순으로 주문합니다.
  1. 테이블에는 중복 레코드가 포함될 수 있습니다.
    company_code는 문자열이므로 정렬은 숫자가 아니어야 합니다. 예를 들어 company_code가 C_1, C_2, C_10인 경우 오름차순 company_code는 C_1, C_10, C_2가 됩니다.

INPUT FORMAT

TABLE NAME : Company

TABLE NAME : Lead_Manager

TABLE NAME : Senior_Manager

TABLE NAME : Manager

TABLE NAME : Manager

SAMPLE INPUT

SAMPLE OUTPUT

문제 풀이

1) INNER JOIN 연산
각 테이블의 외래키인 COMPANY_CODE를 이용해서 연결한다.

1) GROUP BY:

GROUP BY A.COMPANY_CODE, A.FOUNDER: 회사 코드와 창립자 정보를 기준으로 그룹화하여 각 회사에 대해 집계된 결과를 제공합니다.

쿼리

SELECT A.COMPANY_CODE, A.FOUNDER,
             COUNT(DISTINCT B.LEAD_MANAGER_CODE),
             COUNT(DISTINCT C.SENIOR_MANAGER_CODE),
             COUNT(DISTINCT D.MANAGER_CODE),
             COUNT(DISTINCT E.EMPLOYEE_CODE)
             
FROM COMPANY A
INNER JOIN LEAD_MANAGER B ON A.COMPANY_CODE = B.COMPANY_CODE
INNER JOIN SENIOR_MANAGER C ON B.COMPANY_CODE = C.COMPANY_CODE
INNER JOIN MANAGER D ON C.COMPANY_CODE = D.COMPANY_CODE
INNER JOIN EMPLOYEE E ON D.COMPANY_CODE = E.COMPANY_CODE
GROUP BY A.COMPANY_CODE, A.FOUNDER
profile
ice blue

0개의 댓글