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