반응형
WITH RECURSIVE CTE (GENERATION, ID) AS (
-- 초기조건
SELECT 1,ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
UNION ALL
-- 아래부터 반복 결과가 없으면 종료
SELECT
GENERATION + 1,
e.ID
FROM
ECOLI_DATA e
-- 자식이 하나도 없는 마지막 세대일 경우 결과가 없음
JOIN CTE c ON e.PARENT_ID = c.ID
)
SELECT
COUNT(*) AS COUNT,
GENERATION
FROM CTE
WHERE
ID NOT IN (
SELECT PARENT_ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NOT NULL -- NULL을 비교 집합에서 제외
)
GROUP BY GENERATION
ORDER BY GENERATION ASC
반응형
'Software Engineering' 카테고리의 다른 글
[Python 문제 풀이] 프로그래머스 "완전 범죄" (0) | 2025.02.22 |
---|---|
[SQL 문제 풀이] 프로그래머스 "물고기 종류 별 대어 찾기" (0) | 2024.03.21 |
[SQL 문제 풀이] 프로그래머스 "언어별 개발자 분류하기" (0) | 2024.03.18 |
[Python 문제 풀이] 프로그래머스 "[PCCP 기출문제] 2번 / 석유 시추" (0) | 2024.03.17 |
[Python 문제 풀이] 프로그래머스 "[PCCP 기출문제] 4번 / 수레 움직이기" (0) | 2024.03.17 |