728x90
반응형
New Companies
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.
- 왠지 서브쿼리로 빼야 할 거 같은데 .. 나의 한계이다.. 도저히 모르겠어.. ㅠ
- 난 그룹바이를 복잡하게 빼는 것을 어떻게 할 지를 모르겠어...
- where절로 빼는 게 맞는 건가?
수정 전
select c.company_code, c.founder, count(lm.lead_manager_code), count(sm.senior_manager_code), count(m.manager_code), count(e.employee_code)
from company c
join lead_manager lm using(company_code)
join senior_manager sm using(lead_manager_code)
join manager m using(senior_manager_code)
join employee e using(manager_code)
group by c.company_code, c.founder
order by c.company_code;
- 왜.. 카운트가.. 쪼개지지 않고.. 다 합쳐서 들어갈까..
- 그룹바이 때문인 것 같긴 한데..
- 각 테이블에 각각의 칼럼들이 중첩되어 있다보니깐, join 시 값들이 중복되서 전부 같이 뜨게 된 거라고 했음.
수정 후
select c.company_code, c.founder,
count(distinct lm.lead_manager_code), -- distinct 를 붙여서 중복을 제거해야 하고 집계함수 내에도 가능
count(distinct sm.senior_manager_code),
count(distinct m.manager_code),
count(distinct e.employee_code)
from company c
join lead_manager lm using(company_code)
join senior_manager sm using(lead_manager_code)
join manager m using(senior_manager_code)
join employee e using(manager_code)
group by c.company_code, c.founder -- 하나로만 하지 말고, 해당 되는 거 전부 할 것.
order by c.company_code;
728x90
반응형
'Data Science > MySQL' 카테고리의 다른 글
[HackerRank sql] Symmetric Pairs 다소 이해가 안감 (0) | 2025.01.28 |
---|---|
[HackerRank sql] where절과 from절 서브쿼리 차이 (0) | 2025.01.28 |
[HackerRank sql] group by가 아닌 서브쿼리 조건으로 넣을 것 (1) | 2025.01.25 |
[HackerRank sql] join 동시에 여러 개, 집계 함수 위치 (0) | 2025.01.25 |
[HackerRank sql] join between and를 써서 (0) | 2025.01.25 |