https://school.programmers.co.kr/learn/courses/30/lessons/301651
코딩테스트 연습 > SELECT > 멸종위기의 대장균 찾기
문제 분석
난이도: LEVEL5
문제 요구사항
각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요.
이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다.
정답 코드
WITH RECURSIVE ECOLI_DATA_GENERATION AS ( -- 세대 추가
SELECT ID, PARENT_ID, 1 GENERATION
FROM ECOLI_DATA
WHERE PARENT_ID IS NULL
UNION ALL
SELECT D.ID, D.PARENT_ID, GENERATION + 1
FROM ECOLI_DATA D JOIN ECOLI_DATA_GENERATION G
ON G.ID = D.PARENT_ID
),
ECOLI_DATA_GENERATION2 AS ( -- 자식 개수 추가
SELECT ID, PARENT_ID, GENERATION, (SELECT COUNT(*)
FROM ECOLI_DATA_GENERATION D
WHERE G.ID = D.PARENT_ID) CHILD_COUNT
FROM ECOLI_DATA_GENERATION G
)
SELECT COUNT(*) COUNT, GENERATION
FROM ECOLI_DATA_GENERATION2
WHERE CHILD_COUNT = 0
GROUP BY GENERATION
ORDER BY 2
'Algorithm > Programmers SQL' 카테고리의 다른 글
[MySQL] 프로그래머스 상품을 구매한 회원 비율 구하기 (0) | 2024.09.19 |
---|---|
[MySQL] 프로그래머스 보호소에서 중성화한 동물 (0) | 2024.09.19 |
[MySQL] 프로그래머스 입양 시각 구하기(2) (0) | 2024.09.19 |
[MySQL] 프로그래머스 우유와 요거트가 담긴 장바구니 (3) | 2024.09.19 |
[MySQL] 프로그래머스 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2024.09.19 |