WITH구문 예시
WITH user_orders as( -- 앞으로 나올 구문(뷰테이블)을 "user_orders라고 부르겠다."
SELECT user_name, SUM(price) as total_purchase --유저, 가격합계(구매금액 합계)
FROM orders o INNER JOIN products p ON
o.product_id = p.product_id
GROUP BY 1
ORDER BY 2 DESC -- 구매금액이 큰 순서 대로
)
SELECT user_orders.* --WITH구문에서 만든 user_orders를 테이블처럼 사용할 수 있게됨.
FROM user_orders uo INNER JOIN managers m ON
uo.user_name = m.user_name
WITH 구문은 이처럼 복잡한 쿼리도. 블록 단위로 작성할 수 있다.
또한 각 블록은 다른 블록에서도 테이블처럼 지칭해서 쓸 수 있기 때문에 같은 뷰 데이터를 불러오는 쿼리를 짤 때 반복해서 작성할 필요없이 블록을 만든 뒤 거기서 추출하면 됨.