데이터 분석 14일차
WITH RECURSIVE는 자기 자신을 반복 호출하여 재귀적으로 데이터를 생성하는 SQL 문법WITH RECURSIVE 테이블명 AS (
# 1️⃣ **기본값 (Anchor Member)** : 처음 실행될 쿼리
SELECT 초기값
UNION ALL
# 2️⃣ **재귀 부분 (Recursive Member)** : 자기 자신을 호출하여 점진적으로 값 추가
SELECT 다음 값 FROM 테이블명 WHERE 종료 조건
)
SELECT * FROM 테이블명;
✔️ UNION ALL을 사용해서 계속 새로운 데이터를 추가함.
✔️ 종료 조건 (WHERE)이 없으면 무한 루프가 되므로 꼭 필요!
WITH RECURSIVE numbers AS (
SELECT 0 AS num
UNION ALL
SELECT num + 1 FROM numbers WHERE num < 10
)
SELECT * FROM numbers;
✅ 실행 과정
1️⃣ SELECT 0 AS num → num = 0 추가
2️⃣ SELECT num + 1 FROM numbers WHERE num < 10 → 1 추가
3️⃣ SELECT num + 1 FROM numbers WHERE num < 10 → 2 추가
...
10️⃣ num = 10까지 반복, 그 이후 종료
num --- 0 1 2 3 4 5 6 7 8 9 10
📌 WITH RECURSIVE는 자기 자신을 호출하여 반복 실행하는 SQL 문법!
📌 재귀 쿼리(UNION ALL)와 종료 조건이 핵심! 🚀