[SQL]복잡한 쿼리 깔끔하게 작성하기:CTE

Oni·2023년 7월 5일
0

SQL

목록 보기
1/15

자주 쓰는 기능을 함수로 정의해놓고 편하게 불러와 사용하듯
SQL 쿼리를 작성할 때도 함수처럼 정의해두고 사용하는 구문기법을 CTE라고 한다.

CTE

  • Common Table Expression
  • 실제 테이블이나 뷰를 생성하는 것이 아니라 임시로 사용할 수 있는 가상 테이블로 간주하는 것
WITH CTE_Name (column1, column2, ...) AS (
    -- CTE 쿼리 정의
    SELECT column1, column2, ...
    FROM table_name
    WHERE conditions
)
-- CTE가 여러 개일 때 : 
-- 1) 첫번째 CTE작성 후 쉼표
-- 2) 두번째 CTE는 WITH 작성 X
WITH CTE_Name AS (
    -- CTE 쿼리 정의
    SELECT column1, column2, ...
    FROM table_name
    WHERE conditions
),

CTE_Name2 AS (
    -- CTE 쿼리 정의
    SELECT column1, column2, ...
    FROM table_name
    WHERE conditions
)
--MAIN
SELECT *
FROM CTE_Name2

CTE vs SubQuery

CTE

  • 복잡한 쿼리 가독성있게 작성해야 할 때
  • 재귀쿼리 사용시

SubQuery

  • WHERE절에서 다른 테이블로부터 IN, EXISTS 같은 키워드를 추출할 때
  • 다른 테이블로부터 일부를 추출하여 업데이트하고 싶을 때

Reference
https://learnsql.com/blog/cte-vs-subquery/

profile
데이터 분석/엔지니어링/ML에 관한 기록

0개의 댓글