본문 바로가기
OLD_알고리즘/Programmers - SQL

SQL - GROUP BY ] 입양 시각 구하기(2) - WITH RECURSIVE & JOIN

by 달승 2021. 3. 1.

출력 예시)

 

 

 

 

★★★★★★

WITH RECURSIVE 구문을 이용한 리스트 데이터 생성

출처

 

 

오라클의 경우, connect by로 아래와 같은 간단한 리스트 생성이 가능하다. 

SELECT LEVEL FROM DUAL CONNECT BY LEVEL < 9;

 

하지만 MySQL의 경우, 간단한 생성이 불가능하다.

connect by라는 간단한 함수가 없기 때문이다.

따라서 MySQL에서는 WITH RECURSIVE 구문을 사용한다.

 

 

❓ WITH RECURSIVE이란?

- 메모리 상에 가상 테이블 저장

- 재귀 쿼리를 이용하여 가상의 테이블 생성 가능

-- 형식
WITH RECURSIVE 테이블명 AS(
SELECT 초기값 AS 컬럼별명1
UNION ALL
SELECT 컬럼별명1 계산식
FROM 테이블명
WHERE 제어문
)
-- 예시
-- 컬럼 h가 1부터 5까지의 데이터를 갖게 만들자.
WITH RECURSIVE cte
AS (SELECT 1 AS h
UNION ALL
SELECT h + 1
FROM cte
WHERE h < 5
)
SELECT * FROM cte;

 

 

 

★★★★★★

댓글