WITH
Queries (Common Table Expressions)
With
는 사이즈가 큰 쿼리를 만들때 보조적으로 사용할 수 있습니다.
CTE(공통 테이블 표현식) 명령문은 하나의 쿼리에 대해서만 존재하는 임시 테이블을 정의한다.
With
절의 각 보조문은 SELECT
, INSERT
, UPDATE
, DELETE
에 사용될 수 있다.
사용법
Select문에서
Select
에서 With
를 사용해서 복잡한 쿼리를 더 간단한 부분으로 분해한다.
WITH regional_sales AS (
SELECT region, SUM(amount) AS total_sales
FROM orders
GROUP BY region
), top_regions AS (
SELECT region
FROM regional_sales
WHERE total_sales > (SELECT SUM(total_sales)/10 FROM regional_sales)
)
SELECT region,
product,
SUM(quantity) AS product_units,
SUM(amount) AS product_sales
FROM orders
WHERE region IN (SELECT region FROM top_regions)
GROUP BY region, product;