WITH recursive AS 절

HJ·2023년 9월 2일

with recursive as

  • 코딩 테스트 문제를 풀다가 그룹별로 count를 출력하는데 그룹이 없는곳에는 count가 0으로 * 출력되게끔 나오는 문제를 풀었는데 어려웠다. 그때 사용할 수 있는 절이 with as 절이다 즉, 가상의 테이블을 만들어서 sub query등 새로운 테이블과 결합이 가능하다 (재귀 호출을 통해 서브쿼리 내에서 임시테이블을 사용)

with recursive as 구조

> WITH RECURSIVE 가상 테이블명 as(
select문
UNION ALL
반복할 조건문 ->select문 + where 조건문)

구조이다 . 예시를 들면

WITH RECURSIVE NEW AS(
    SELECT 0 AS NUM        #num이라는거 만드는데(select문)
    UNION ALL
    SELECT NUM+1 FROM NEW  #num은 23까지 +1한거를 계속 더한다(select) 
    WHERE NUM < 23 (where)
) 

new 라는 가상의 테이블을 만드는데 값은 0을담는 column num을 만들어서 그 num 값에 23까지 1씩 더해서 채운다는 내용이다

profile
데이터 공부 기록

0개의 댓글