[금융권 SQL 실무] 1.with 절
With절 이란?
SQL의 With 절은 하나 이상의 일시적인 뷰를 정의하고, 이러한 뷰를 재사용하여 복잡한 쿼리를 간결하게 작성할 수 있도록 도와주는 기능. 이를 통해 쿼리의 가독성과 유지 보수성을 향상시킬 수 있음
With절 쿼리 예시 (1)
With my_view AS (
SELECT column1, column2, ...
FROM my_table
WHERE condition
)
SELECT column1, COUNT(*)
FROM my_view
GROUP BY column1;
위의 예시에서, WITH 절은 my_view라는 임시 뷰를 정의. 이 뷰는 my_table에서 조건에 맞는 행을 선택하고, column1과 column2 열을 선택하고 이 뷰를 사용하여 COUNT(*) 함수를 사용하여 column1별 행의 개수를 계산하는 집계 쿼리를 작성해야 함
With절 쿼리 예시 (2)
WITH sales AS (
SELECT product, SUM(quantity) AS total_quantity
FROM orders
GROUP BY product
)
SELECT product, total_quantity, total_quantity * price AS revenue
FROM sales
JOIN prices ON sales.product = prices.product;
위의 예시에서, With 절은 sales라는 임시 뷰를 정의. 이 뷰는 orders 테이블에서 제품별 주문 수량을 계산하고, 이를 합산하여 total_quantity라는 열로 반환. 이후, 이 뷰를 사용하여 prices 테이블과 조인하고, 제품별 매출(revenue)을 계산
이와 같이 With 절을 사용하면, 쿼리를 단순화하고 가독성을 높일 수 있음. 또한, With 절을 사용하면 중복되는 부분을 제거하여 유지 보수성을 높일 수 있음
[SQL 쿼리] with 절 설명 및 예시
With절과 Subquery의 차이점
With 절과 서브쿼리(Subquery)는 SQL에서 데이터를 추출하는 데 사용되는 두 가지 방법. 그러나 둘 사이에는 몇 가지 차이점이 있음
서브쿼리는 하나의 SQL 문 안에서 다른 SQL 문을 내장. 서브쿼리는 일반적으로 SELECT, UPDATE, INSERT 또는 DELETE 문 안에서 사용하며 일반적으로 다른 테이블과 조인하거나 WHERE 절 또는 HAVING 절에 사용
With 절은 일시적인 뷰를 정의하여 재사용 가능한 쿼리를 작성하는 데 사용하며 SELECT 문에서 사용. WITH 절은 SQL 문에서 일시적인 뷰를 정의하는 것이며, 이 뷰는 기존의 테이블을 기반으로 함. 이를 통해 복잡한 쿼리를 간단하게 작성할 수 있으며, 가독성과 유지 보수성을 향상시킬 수 있음
다른 차이점으로는 With 절에서 정의한 뷰는 해당 쿼리에서만 사용되며, 다른 쿼리에서는 사용할 수 없음. 반면, 서브쿼리는 하나의 SQL 문에서 사용될 수 있지만 다른 SQL 문에서도 사용할 수 있음
또한 With 절은 쿼리의 중복 코드를 줄일 수 있으며, 쿼리의 가독성과 유지 보수성을 향상시킬 수 있음. 반면, 서브쿼리는 단일 쿼리 내에서 조인이나 WHERE 절의 복잡도를 줄일 수 있음
결론적으로, With 절과 서브쿼리는 모두 SQL에서 데이터를 추출하는 데 사용. 그러나 With 절은 일시적인 뷰를 정의하여 복잡한 쿼리를 작성하는 데 사용되며, 서브쿼리는 다른 SQL 문에서도 사용될 수 있고, 조인 또는 WHERE 절의 복잡도를 줄일 수 있음
'데이터분석 > SQL' 카테고리의 다른 글
[금융권 SQL 실무] JOIN 함수 (22) | 2023.05.09 |
---|---|
[금융권 SQL 실무] 금융권 SQL 활용 (13) | 2023.05.08 |
[금융권 SQL 실무] Case When 절 (13) | 2023.05.02 |
[금융권 SQL 실무] WHERE 절 (9) | 2023.04.28 |
[금융권 SQL 실무] 서브쿼리(Subquery) (8) | 2023.04.26 |
댓글