inblog logo
|
stupefyee
    SQL문제풀기

    [SQL 문제 풀이] 멸종위기의 대장균 찾기

    {재귀 쿼리}
    Stupefyee's avatar
    Stupefyee
    Dec 17, 2024
    [SQL 문제 풀이] 멸종위기의 대장균 찾기
    Contents
    내가 작성한 쿼리재귀 쿼리?
    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/301651
    notion image

    내가 작성한 쿼리

    💡
    with recursive tmp as ( select id, parent_id, 1 as generation from ecoli_data where parent_id is null union all select s.id, s.parent_id, tmp.generation + 1 from tmp join ecoli_data s on tmp.id = s.parent_id ) select count(*) count, generation from tmp where id not in ( select distinct parent_id from tmp where parent_id is not null) group by generation order by generation;

    재귀 쿼리?

    SQL에서 계층적 데이터를 처리하거나, 트리 구조를 탐색할 때 사용

    재귀 쿼리의 주요 특징

    1. 자기참조: 결과 집합을 스스로 호출하여 점진적으로 확장
    1. 계층 구조 탐색: 부모-자식 관계 데이터를 처리
    1. CTE 사용: WITH RECURSIVE 구문을 활용하여 쿼리를 작성

    기본 문법

    WITH RECURSIVE cte_name AS ( -- Anchor 쿼리: 초기 결과 집합을 정의 초기_쿼리 UNION ALL -- Recursive 쿼리: 자신을 참조하여 추가 데이터를 가져옴 재귀_쿼리 ) SELECT * FROM cte_name;
    • Anchor 쿼리: 재귀의 시작점 (초기 데이터).
    • Recursive 쿼리: 자기 자신을 호출하여 점진적으로 결과를 확장.
    • 종료 조건: 재귀 쿼리의 WHERE 조건이 종료 조건 역할.
    Share article
    Contents
    내가 작성한 쿼리재귀 쿼리?

    stupefyee

    RSS·Powered by Inblog