[HackerRank] New Companies 문제 풀이 Mysql
by daramiNew Companies | HackerRank
Find total number of employees.
www.hackerrank.com
그냥 읽고 풀면 얼레벌레 풀게 되어서 적으면서 완전히 분석해 보겠어요 ✌
문제 & 해석
- 뜻밖의 영어 공부
conglomerate: 복합기업_ A conglomerate is a multi-industry company (Wikipedia)
엠버의 복합 기업은 몇개의 새로운 회사를 얻었다. 각각의 회사는 아래의 위계를 따릅니다.
아래의 테이블 스키마를 고려할때 회사_코드, 설립자 이름, 리드 매니저의 총 숫자, 시니어 매니저의 총 숫자, 매니저의 총 숫자를 출력하는 쿼리를 짜세요. 너의 출력은 회사_코드의 오름차순으로 정렬하세요.
노트:
- 테이블은 중복된 기록을 포함할 거에요.
- 회사_코드는 문자열이야, 그래서 sorting(정렬)은 숫자(numeric)가 되면 안돼.
예를 들어 회사_코드가 C_1,C_2,C_10야 그러면 오름차순 회사_코드는 C_1, C_10, C_2 여야해
🔍잠시만..뭐라고?
그러니까..C_1, C_2 에서 0:a 1:b , 2:c 같은 취급이니까
C_1 : C_b
C_10 : C_ba
C_2 : C_c
결국.. 몇번 해보니 바로 답이 나왔다. 근데 DISTINCT를 두번 넣을 필요 없잖아? 쓰다 보니 이렇게..
SELECT DISTINCT c.company_code
,founder
,COUNT(DISTINCT e.lead_manager_code)
,COUNT(DISTINCT e.senior_manager_code)
,COUNT(DISTINCT e.manager_code)
,COUNT(DISTINCT e.employee_code)
FROM Company AS c
INNER JOIN Employee AS e ON c.company_code=e.company_code
GROUP BY c.company_code, founder
ORDER BY c.company_code
이렇게 해도 정답!
SELECT c.company_code
,founder
,COUNT(DISTINCT e.lead_manager_code)
,COUNT(DISTINCT e.senior_manager_code)
,COUNT(DISTINCT e.manager_code)
,COUNT(DISTINCT e.employee_code)
FROM Company AS c
INNER JOIN Employee AS e ON c.company_code=e.company_code
GROUP BY c.company_code, founder
ORDER BY c.company_code
자세한 비교는 좀 있다가 스터디를 통해서 하기!
'SQL > HackerRank,프로그래머스' 카테고리의 다른 글
[HackerRank] Ollivander's Inventory 문제 풀이 mysql (0) | 2022.05.14 |
---|---|
[HackerRank] Top Competitors 문제 풀이 mysql (0) | 2022.05.14 |
[HackerRank] Weather Observation Station 18,19,20 Mysql 풀이 (0) | 2022.05.11 |
[Hacker Rank] Binary Tree Nodes 문제 풀이 복습 My sql (0) | 2022.05.07 |
[Hackerank] Top earners , 서브쿼리를 써야만하나요 mysql (0) | 2022.05.05 |
블로그의 정보
다람
darami