코드 공부

[오늘의 데이터 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()을 사용한다.

-