[SQL] 프로그래머스 SQL 고득점 Kit_SELECT (32/33)

餘園·2025년 7월 20일

SQL 고득점 Kit

목록 보기
32/109
post-thumbnail

멸종위기의 대장균 찾기 (Level 5)

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

solve

WITH RECURSIVE CTE AS (
    SELECT ID, PARENT_ID, 1 AS GEN 
    FROM ECOLI_DATA
    WHERE PARENT_ID IS NULL

    UNION ALL

    SELECT a.ID, a.PARENT_ID, GEN + 1 AS GEN
    FROM ECOLI_DATA AS a, CTE AS b
    WHERE b.ID = a.PARENT_ID
)

SELECT COUNT(*) AS COUNT, a.GEN AS GENERATION
    FROM CTE a
    LEFT JOIN CTE b ON a.ID = b.PARENT_ID
    WHERE b.ID is null
    GROUP BY a.GEN
    ORDER BY a.GEN ASC
  • 재귀
  • UNION ALL
  • LEFT JOIN
profile
What else can I do

0개의 댓글