■ 사용 문법
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
'개발 > SQL' 카테고리의 다른 글
프로그래머스SQL_대장균의 크기에 따라 분류하기 2 (0) | 2024.05.04 |
---|---|
프로그래머스SQL_대장균의 크기에 따라 분류하기 1 (0) | 2024.05.03 |
프로그래머스SQL_서울에 위치한 식당 목록 출력하기 (1) | 2024.05.01 |
프로그래머스SQL_서울에 위치한 식당 목록 출력하기 (0) | 2024.04.30 |
프로그래머스SQL_조건에 맞는 개발자 찾기 (0) | 2024.04.27 |