개발/SQL

프로그래머스SQL_대장균들의 자식의 수 구하기

송디 2024. 5. 2. 09:49

출처 : 프로그래머스

 

■ 사용 문법 

LEFT JOIN, IFNULL, GROUP BY

 

■ 사용 방법

1. ECOLI_DATA 테이블을 GROUP BY를 해줘 PARENT_ID의 갯수를 구해준다.

2. 이렇게 만들어진 테이블을 ECOLI_DATA와 LEFT JOIN을 해준다. 

LEFT JOIN을 해주는 이유는 모든 ID에 대한 자식의 수를 구해줘 하므로 갯수가 0인 것도 나와야 한다. 

기존에 있는 INNER JOIN으로 할 경우 교집합만 출력이 되므로 모든 ID가 있는 ECOLI_DATA의 값이 다 나올 수 있도록 LEFT JOIN을 해준다. 

3. 갯수가 NULL 인것은 IFNULL을 통해 0으로 널처리를 해준다. 

 

■ 코드

-- 코드를 작성해주세요
SELECT ID, IFNULL(CNT, 0) AS CHILD_COUNT
FROM ECOLI_DATA AS A
LEFT JOIN(  
    SELECT PARENT_ID, COUNT(PARENT_ID) AS CNT
    FROM ECOLI_DATA
    GROUP BY PARENT_ID) AS B
ON A.ID = B.PARENT_ID
ORDER BY ID
728x90