본문으로 바로가기
반응형

임시 테이블: WITH

  • 서브쿼리에서 만들었던 결과물을 이름을 붙여 임시 테이블로 만듦
WITH 임시테이블명1 AS ( 서브쿼리2 ),
           임시테이블명2 AS ( 서브쿼리2 )
  • 위 코드를 통해 임시 테이블을 생성할 수 있다.
  • 임시 테이블은 DB에 있는 테이블은 아니지만 쿼리에서는 사용 가능
WITH daily_quantity_table AS (
	SELECT o.order_date, u.state, SUM(o.quantity) AS daily_quantity
	FROM data.orders o
	LEFT JOIN data.users u
	ON o.customer_id = u.customer_id
	GROUP BY o.order_date, u.state
	ORDER BY u.state, o.order_date
)

SELECT state, AVG(daily_quantity) AS state_daily_quantity
FROM daily_quantity_table
GROUP BY state

 

서브쿼리 vs WITH

 

서브쿼리 WITH
서브쿼리 결과가 값이나 컬럼 한개일 때 서브쿼리가 길어지고 복잡해지면
WHERE에 쓸 때 한 쿼리내에서 같은 서브쿼리가 여러번 반복되면

 

반응형