■ 사용 문법
WITH RECURSIVE
■ 사용 방법
WITH RECURSIVE를 이용해 세대 별로 분류해준다. 이후 PARENT_ID에 없는 ID를 분류해주고, GROUP BY로 세대 별로 나누어 줘서 갯수를 구하면 된다.
■ 코드
-- 코드를 작성해주세요
WITH RECURSIVE GEN_DATA 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
INNER JOIN GEN_DATA g ON A.PARENT_ID = g.ID
)
SELECT COUNT(*) AS COUNT , GEN AS GENERATION
FROM GEN_DATA
WHERE ID not IN (SELECT PARENT_ID
FROM ECOLI_DATA
WHERE PARENT_ID IS NOT NULL )
GROUP BY GEN
ORDER BY GEN
728x90
'개발 > SQL' 카테고리의 다른 글
프로그래머스SQL_대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기 (0) | 2024.05.09 |
---|---|
프로그래머스SQL_조건에 맞는 사용자와 총 거래금액 조회하기 (0) | 2024.05.08 |
프로그래머스SQL_부모의 형질을 모두 가지는 대장균 찾기 (0) | 2024.05.06 |
프로그래머스SQL_특정 세대의 대장균 찾기 (0) | 2024.05.05 |
프로그래머스SQL_대장균의 크기에 따라 분류하기 2 (0) | 2024.05.04 |