Coding Test/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(1) AS COUNT
, P.LV AS GENERATION
FROM GENERATION P LEFT JOIN GENERATION C ON P.ID = C.PARENT_ID
WHERE C.ID IS NULL
GROUP BY 2
ORDER BY 2

now me
On my github
728x90