강의로 돌아가기
임현준

정답 풀이

WITH RECURSIVE GEN
AS (
    SELECT ID, PARENT_ID, 1 AS DEPTH
    FROM ECOLI_DATA
    WHERE PARENT_ID IS NULL

    UNION ALL

    SELECT CHILD.ID, CHILD.PARENT_ID, GEN.DEPTH + 1
    FROM ECOLI_DATA CHILD
    JOIN GEN
    ON CHILD.PARENT_ID = GEN.ID
),

CHILD
AS (
    SELECT A.ID, COUNT(B.ID) NUM FROM ECOLI_DATA A
    LEFT JOIN ECOLI_DATA B
    ON A.ID=B.PARENT_ID
    GROUP BY A.ID
)

SELECT COUNT(*) COUNT, A.DEPTH GENERATION FROM GEN A
JOIN (SELECT * FROM CHILD WHERE NUM=0) B USING (ID)
GROUP BY A.DEPTH
ORDER BY 2
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.