본문 바로가기
문제 풀이/프로그래머스

[MYSQL 36] 대장균들의 자식의 수 구하기

by hyeminigo 2024. 10. 13.

대장균들의 자식의 수 구하기 (LEVEL3)

 

대장균 개체의 ID(ID)와 자식의 수(CHILD_COUNT)를 출력 (자식이 없다면 자식의 수는 0)

정렬 개체의 ID 오름차순

 


정답 코드

SELECT A.ID, (CASE 
              WHEN CHILD_COUNT IS NULL THEN 0 
              ELSE CHILD_COUNT 
              END) AS CHILD_COUNT
FROM ECOLI_DATA A LEFT JOIN (SELECT P.ID, count(*) as CHILD_COUNT
                        FROM ECOLI_DATA P JOIN ECOLI_DATA C 
                        ON P.ID = C.PARENT_ID
                        GROUP BY P.ID) B ON A.ID = B.ID
ORDER BY A.ID

MEMO

  • CASE-WHEN 또 다른 방법
COALESCE(B.COUNT, 0)
  • 처음에는 JOIN 한번으로 끝내볼까했는데 자식수 0인 경우 찾는게 안되서 JOIN 두번 사용