문제풀이/SQL

특정 세대의 대장균 찾기

monawa 2025. 7. 10.
728x90

문제 

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.

 

 

풀이

select 
    C.ID

from 
    ECOLI_DATA a
join 
    ECOLI_DATA b
    on  A.ID = B. PARENT_ID 
    AND A.PARENT_ID IS NULL
JOIN
    ECOLI_DATA C
    ON B.ID =  C.PARENT_ID
    
ORDER BY 
    C.ID

join을 이용하여 2세대를 구하고 이를 통해 3세대도 구해주기 

 

with 
    first_gen as ( 
        select *
        from ECOLI_DATA a
        where a.PARENT_ID is null),
    second_gen as (
        select b.*
        from ECOLI_DATA b
        join first_gen 
        on first_gen.id = b.PARENT_ID 
    )

select 
    c.id

from 
    ECOLI_DATA c
join 
    second_gen 
    on c.PARENT_ID = second_gen.id

order by c.id

with 문 연습하는김에 이렇게도 만들어보기 끗 

728x90

댓글