25분
CTE: SQL의 변수 선언
Day 3: 쿼리가 너무 복잡한데 쪼갤 수 없나?
CTE: SQL의 변수 선언
SQL 고급 - 윈도우 함수와 성능 최적화 > Day 3: 쿼리가 너무 복잡한데 쪼갤 수 없나?
학습 목표
CTE의 기본 문법을 이해한다 서브쿼리와 CTE의 차이를 파악한다
CTE란?
Common Table Expression
- WITH 절로 정의하는 임시 결과 집합
- "SQL의 변수"처럼 중간 결과를 저장
- 쿼리 내에서만 유효 (일회성)
기본 문법
에디터 로딩 중...
예시:
에디터 로딩 중...
CTE vs 서브쿼리
서브쿼리 (읽기 어려움)
에디터 로딩 중...
CTE (읽기 쉬움)
에디터 로딩 중...
CTE의 장점
| 장점 | 설명 |
|---|---|
| 가독성 | 각 단계에 이름을 붙여 의도 명확 |
| 재사용 | 같은 CTE를 여러 번 참조 가능 |
| 디버깅 | 각 CTE를 독립적으로 테스트 가능 |
| 유지보수 | 수정할 부분을 쉽게 찾을 수 있음 |
여러 CTE 연결 (체이닝)
에디터 로딩 중...
파이프라인처럼 데이터가 흐른다!
에디터 로딩 중...
CTE 명명 규칙 (실무 팁)
좋은 이름:
filtered_orders- 무엇을 필터했는지customer_totals- 무엇을 집계했는지ranked_products- 무엇을 순위 매겼는지
나쁜 이름:
temp,tmp,t1,data- 의미 없음cte1,cte2- 그냥 번호
주의사항
에디터 로딩 중...
CTE는 한 쿼리 안에서만 존재하는 "일회용 테이블"이다.