반응형
CTE(Common Table Expression) 공통 테이블 표현식
- 단일 쿼리문 내에서 임시 테이블을 생성하여 여러번 참조가 가능한 임시 결과 집합
- MySQL 8.0.1부터 도입
WITH문 단일 레코드
# WITH {테이블명} AS (SELECT a AS A, b AS B)
WITH temp AS (
SELECT "홍길동" AS name, 20 AS age
)
# WITH {테이블명} (A, B) AS (SELECT a, b)
WITH temp (name, age) AS (
SELECT "홍길동", 20
)
WITH문 다중 레코드
WITH temp (name, age) AS (
SELECT"홍길동", 20
UNION ALL -- 두 레코드를 병합
SELECT "김아무개", 30
)
WITH문 재귀사용(RECURSIVE)
WITH RECURSIVE temp (date, name, age) AS (
SELECT "2022-01-01", "홍길동", 20
UNION ALL
SELECT date + INTERVAL 1 year, "홍길동", age + 1
FROM temp -- temp 테이블의 마지막 생성된 행 참조
WHERE age < 30 -- WHERE절의 조건으로 재귀 제한
)
반응형
'MySQL' 카테고리의 다른 글
프로그래머스 Lv.5 - 멸종위기의 대장균 찾기 (0) | 2024.07.01 |
---|---|
프로그래머스 Lv.4 - 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2024.07.01 |