ror_coding

[Programmers Lv.5] 멸종위기의 대장균 찾기 - 301651 본문

Algorithm/SQL

[Programmers Lv.5] 멸종위기의 대장균 찾기 - 301651

ro_rdil_31 2025. 1. 16. 19:47
728x90

RECURSIVE CTE 로 세대 Level 구하는 코드를 사용해야 합니다.

 

Question

 

각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요.

이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다.

 

Code

 

WITH RECURSIVE GENERATION AS(
    SELECT ID, PARENT_ID, 1 AS LV
        FROM ECOLI_DATA
        WHERE PARENT_ID IS NULL
    UNION ALL
    SELECT E.ID, E.PARENT_ID, LV + 1
        FROM ECOLI_DATA E JOIN GENERATION G
          ON E.PARENT_ID = G.ID
)
SELECT COUNT(A.ID) AS COUNT, A.LV AS GENERATION
    FROM GENERATION A LEFT JOIN GENERATION B
      ON A.ID = B.PARENT_ID
    WHERE B.ID IS NULL
    GROUP BY 2
    ORDER BY 2

 

now me

On my github
728x90