SQL/SELECT
[프로그래머스 SQL] Lv.4 - 특정 세대의 대장균 찾기
이런개발
2025. 3. 6. 07:54
https://school.programmers.co.kr/learn/courses/30/lessons/301650
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제 풀이
- 3세대 대장균은 2세대 대장균을 부모로 하고, 2세대 대장균은 1세대 대장균을 부모로 한다. 그리고 1세대 대장균은 부모가 없다.
- 즉 서브쿼리로 1세대 대장균을 찾고, 또 서브쿼리로 2세대 대장균을 찾은 다음, 2세대 대장균을 부모로 갖는 행을 필터링한다.
- 대장균 ID를 기준으로 오름차순 정렬한다.
SELECT ID # 3세대 대장균
FROM ECOLI_DATA
WHERE PARENT_ID IN
(SELECT ID # 2세대 대장균
FROM ECOLI_DATA
WHERE PARENT_ID IN
(SELECT ID # 1세대 대장균
FROM ECOLI_DATA
WHERE ISNULL(PARENT_ID)
)
)
ORDER BY 1