[SQL 고득점 Kit-MySQL] 멸종위기의 대장균 찾기

코린이·2025년 2월 20일

SQL 문제 풀이 (MySQL)

목록 보기
33/96

❓ 문제

각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요. 이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다.


❗️ 문제 풀이

WITH RECURSIVE TMP_TABLE AS (
    SELECT ID, PARENT_ID, 1 AS N
    FROM ECOLI_DATA
    WHERE PARENT_ID IS NULL
   
    UNION ALL
   
    SELECT A.ID, A.PARENT_ID, B.N + 1 AS N
    FROM ECOLI_DATA A
   
    JOIN TMP_TABLE B
        ON A.PARENT_ID = B.ID
)
SELECT 
    COUNT(*) AS COUNT,
    A.N AS GENERATION
FROM TMP_TABLE A LEFT JOIN TMP_TABLE B
    ON A.ID = B.PARENT_ID
WHERE B.ID IS NULL
GROUP BY A.N
;

🔗 Reference

https://school.programmers.co.kr/learn/courses/30/lessons/301651

0개의 댓글