공통 테이블 식(CTE)
공통 테이블 식(Common Table Expression, CTE)
은 WITH
절로 정의하는 임시 결과 집합입니다.
CTE를 사용하면 SQL을 더 읽기 쉽고, 구조화하기 쉽고, 재사용하기 쉬워집니다.
이번 레슨에서는 비재귀 CTE를 살펴봅니다.
즉, CTE가 자기 자신을 호출하지 않고, 간단한 로직이나 필터링을 위해 한 번만 사용하는 경우를 말합니다.
문법
CTE의 기본 문법은 다음과 같습니다.
CTE 문법
WITH cte_name AS (
SELECT ...
FROM ...
WHERE ...
)
SELECT *
FROM cte_name;
WITH
은 CTE 블록을 정의합니다- 메인 쿼리는 이를 일반 테이블처럼 참조합니다
예시: 2개 이상의 강의를 선택한 사용자
다음 쿼리는 2개 이상 강의를 선택한 사용자를 반환합니다.
CTE 예제
WITH multi_course_users AS (
SELECT user_id, COUNT(*) AS course_count
FROM user_courses
GROUP BY user_id
HAVING COUNT(*) >= 2
)
SELECT u.name, m.course_count
FROM multi_course_users m
JOIN users u ON u.user_id = m.user_id
ORDER BY u.name;