반응형
임시 테이블: 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에 쓸 때 | 한 쿼리내에서 같은 서브쿼리가 여러번 반복되면 |
반응형
'Skills > SQL' 카테고리의 다른 글
[SQL] 18. 많이 쓰이는 분석 프레임(1) - 퍼널 분석 (1) | 2021.08.06 |
---|---|
[SQL] 17. SQL 에러 대처하기 (0) | 2021.08.06 |
[SQL] 15. 다듬어진 데이터가 필요로 할 때, 서브쿼리 (0) | 2021.08.05 |
[SQL] 14. IF와 같은 역할, CASE WHEN (0) | 2021.08.05 |
[SQL] 13. 날짜와 시간 다루기 (DATE) (0) | 2021.08.05 |