SQL/프로그래머스 문제풀이

[SELECT] 특정 세대의 대장균 찾기

너지살 2024. 4. 27. 14:30

 

 

 

문제 출저

https://school.programmers.co.kr/learn/courses/30/lessons/301650

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

문제 풀이

3세대 대장균의 ID를 출력해야 합니다. 

3세대를 알기 위해서는 2번의 JOIN을 거쳐야 합니다.

WITH을 사용하여 2세대를 구하고 이 WITH을 다시 사용하여 3세대를 구합니다. 

 

 

SQL

WITH GENTWO AS (
    SELECT CHILD.ID AS ID 
    FROM ECOLI_DATA AS CHILD 
    JOIN ECOLI_DATA AS PARENT ON CHILD.PARENT_ID = PARENT.ID
    WHERE PARENT.PARENT_ID IS NULL 
)

SELECT 
    CHILD.ID AS ID 
FROM
    ECOLI_DATA AS CHILD 
JOIN
    GENTWO AS PARENT ON CHILD.PARENT_ID = PARENT.ID
ORDER BY 
    ID