코드 공부
[오늘의 데이터 60] [프로그래머스] 대장균들의 자식의 수 구하기
eun_00
2024. 5. 30. 23:43
https://school.programmers.co.kr/learn/courses/30/lessons/299305
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 ]
잡은 물고기 중 길이가 10cm 이하인 물고기의 수를 출력하는 SQL 문을 작성해주세요.
물고기의 수를 나타내는 컬럼 명은 FISH_COUNT로 해주세요.
[💡 정답 ]
SELECT ID, IFNULL(CP, 0) AS CHILD_COUNT
FROM ECOLI_DATA AS A
LEFT JOIN (
SELECT PARENT_ID, COUNT(PARENT_ID) AS CP
FROM ECOLI_DATA
GROUP BY PARENT_ID) AS B
ON A.ID = B.PARENT_ID
ORDER BY ID ASC;
✔️ 알게된 것
- PARENT_ID 필드를 GROUP BY로 묶어 COUNT 해주고 테이블로 만든다.
- 만든 테이블과 원래 데이터셋을 LEFT JOIN 해준다.
원래 데이터셋에서 LEFT JOIN 하는 이유는 ID별로 PARENT_ID가 NULL인 경우 0이 나와야 해서이다.
- NULL인 경우 0으로 대체되도록 IFNULL()을 사용한다.
-