Allen's 데이터 맛집

HackerRank lv. Medium : New Companies 본문

SQL/SQL 문제풀이

HackerRank lv. Medium : New Companies

Allen93 2024. 2. 9. 22:15

 

문제

 

풀이

 

select
    c.company_code
    ,c.founder
    ,count(distinct lm.lead_manager_code)
    ,count(distinct sm.senior_manager_code)
    ,count(distinct m.manager_code)
    ,count(distinct e.employee_code)
from
    company  c 
    join lead_manager lm on c.company_code = lm.company_code
    join senior_manager sm on sm.company_code = lm.company_code
    join manager m on sm.company_code = m.company_code
    join employee e on m.company_code = e.company_code
group by
    c.company_code, c.founder
order by 
    c.company_code

 

1. company, lead_manager, senior_manager, manager, employee 테이블을 조인합니다. 각 테이블은 회사의 다른 직급에 해당하는 사람들의 정보를 포함합니다.

2. 조인 조건은 회사 코드(company_code)를 기준으로 합니다. 각 직급 테이블에서 회사 코드가 일치하는 레코드를 가져옵니다.

3. COUNT() 함수를 사용하여 각 직급 별로 고유한 코드의 수를 계산합니다. 각각 리드 매니저, 시니어 매니저, 매니저, 직원의 수를 세어 쿼리 결과에 포함합니다.

4. GROUP BY 절을 사용하여 회사 코드와 창업자를 기준으로 결과를 그룹화합니다. 이렇게 하면 각 회사에 대한 정보가 하나의 레코드로 요약됩니다.

5. ORDER BY 절을 사용하여 회사 코드를 기준으로 결과를 정렬합니다.

이러한 절차를 통해 각 회사에 대한 창업자와 해당 회사의 직원들의 수를 알 수 있습니다.

 

 

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

 

New Companies | HackerRank

Find total number of employees.

www.hackerrank.com