DBMS/프로그래머스

프로그래머스 - 멸종위기의 대장균 찾기

내이름효주 2024. 5. 29. 00:04

🧩 문제 및 해석

- 각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)(오름차순)
- 세대 별 GROUP BY 필요

- 자식의 부모 ID들을 구해서 NOT IN을 이용해서 세대별 자식이 없는 개체 구하기

 

✨ 내가 푼 코드

WITH RECURSIVE GEN_DATA AS (
    SELECT ID, PARENT_ID, 1 AS GEN
    FROM ECOLI_DATA
    WHERE PARENT_ID IS NULL
    UNION ALL
    SELECT E.ID, E.PARENT_ID, G.GEN + 1 AS GEN
    FROM ECOLI_DATA AS E
    INNER JOIN GEN_DATA AS G ON E.PARENT_ID = G.ID 
)

SELECT COUNT(*) AS COUNT, GEN AS GENERATION
FROM GEN_DATA
WHERE ID NOT IN (SELECT PARENT_ID FROM GEN_DATA WHERE PARENT_ID IS NOT NULL)
GROUP BY GENERATION