wrkbrs

[PostgreSQL] WITH RECURSIVE 계층 쿼리 본문

PostgreSQL

[PostgreSQL] WITH RECURSIVE 계층 쿼리

zcarc 2019. 1. 12. 08:16

*

 WITH RECURSIVE 계층 쿼리


: 오라클에서 계층형쿼리라고 표현하는 start width, connect by 구문 대신 

RECURSIVE 키워드를 사용하여 재귀적인 쿼리문을 작성


1
2
3
4
5
6
7
8
9
WITH RECURSIVE t(n) AS (
    -- initial query
    SELECT 1
  UNION ALL
    -- recursive query
    SELECT n+1 FROM t
)
-- parent query(or outer query)
SELECT n FROM t LIMIT 100;
cs


: 처음에 한번 실행하는 initial query와 그 후에 계속 반복적으로 도는 recursive query가 있음

나온 결과를 합쳐서 다음에 오늘 parent query에 넘겨주게 됨


: WITH RECURSIVE 결과 = initial query 결과 

UNION ALL recursive query 1 UNION ALL recursive query 2 UNION ALL recursive query 3


: WITH구문의 첫 번째 SELECT 문장은 오라클 계층형 쿼리의 START WITH에 해당 -> 데이터 ROOT를 구하는 부분

UNION ALL 다음의 SELECT문은 하위 데이터를 찾아가기 위한 반복 구문