[Hackerrank] SQL - New Companies

DMIS·2022년 3월 27일
0

SQL

목록 보기
34/48
post-thumbnail

문제

풀이

글이 길어 풀기 싫어서 미루고 있었는데, 아침에 잠도 깰겸 천천히 읽어보았다.
영어 공부를 해야겠다는 생각이 들었다.
우선 company_code와 founder에 대하여 group by를 해줄 것이기 때문에 계속 join할 수 밖에 없었다.
그렇지 않으면 employee 테이블 만으로 뭔가 해결할 수 있지 않았을까 싶다.
쿼리가 길어보이지만 대부분이 join에 대한 이야기라 사실 어려운 문제는 아니었다고 생각한다.

select 
    t1.company_code, 
    t1.founder, 
    count(distinct t2.lead_manager_code),
    count(distinct t3.senior_manager_code),
    count(distinct t4.manager_code),
    count(distinct t5.employee_code)
from company as t1
left join lead_manager as t2
on t1.company_code = t2.company_code
left join senior_manager as t3
on t2.lead_manager_code = t3.lead_manager_code
left join manager as t4
on t3.senior_manager_code = t4.senior_manager_code
left join employee as t5
on t4.manager_code = t5.manager_code
group by t1.company_code, t1.founder
order by t1.company_code
profile
Data + Math

0개의 댓글