MS SQL Server에서 WITH 절은 일시적인 서브쿼리를 생성하는 방법 중 하나입니다.
이 서브쿼리는 WITH 절 뒤에 정의된 이름을 가지며, 이 이름을 사용하여 서브쿼리 결과를 참조할 수 있습니다.
이러한 구문을 "공통 테이블 식(Common Table Expression, CTE)"이라고도 부릅니다.
WITH 절은 보다 복잡한 쿼리를 작성할 때 유용하며, 코드 가독성을 높이고 중복을 줄일 수 있습니다.
일반적으로 WITH 절은 두 가지 방식으로 사용됩니다.
1. WITH 절과 함께 서브쿼리 사용하기
WITH sales_data AS (
SELECT customer_id, SUM(amount) AS total_sales
FROM sales
GROUP BY customer_id
)
SELECT customer_id, total_sales
FROM sales_data
WHERE total_sales > 10000;
위의 예제에서는 WITH 절을 사용하여 sales_data 서브쿼리를 정의합니다.
이 서브쿼리에서는 sales 테이블에서 각 고객의 총 매출을 계산합니다.
그리고 이 sales_data 서브쿼리에서 반환된 결과를 이용하여 sales 테이블에서 매출이 10,000달러 이상인 고객들의 정보를 가져옵니다.
2. 여러 WITH 절을 조합하여 사용하기
WITH sales_data AS (
SELECT customer_id, SUM(amount) AS total_sales
FROM sales
GROUP BY customer_id
),
big_customers AS (
SELECT customer_id
FROM sales_data
WHERE total_sales > 10000
)
SELECT c.*
FROM customers c
INNER JOIN big_customers bc ON c.customer_id = bc.customer_id;
위의 예제에서는 WITH 절을 두 개 사용하여 sales_data와 big_customers 두 개의 서브쿼리를 정의합니다.
sales_data 서브쿼리는 고객의 총 매출을 계산하고, big_customers 서브쿼리에서는 매출이 10,000달러 이상인 고객들의 ID를 가져옵니다.
마지막으로 customers 테이블과 big_customers 서브쿼리를 조인하여 매출이 10,000달러 이상인 고객들의 정보를 가져옵니다.
WITH 절을 사용하면 복잡한 쿼리를 간단하게 만들 수 있으며, 코드 가독성을 높일 수 있습니다.
또한 일시적인 서브쿼리를 정의하므로, 이를 이용한 쿼리 실행 시간을 최적화할 수 있는 경우도 있습니다.
'SQL > MSSQL' 카테고리의 다른 글
[MSSQL] IS NULL 사용 방법 (0) | 2023.03.17 |
---|---|
[MSSQL] Insert Into / 데이터 삽입 쿼리 (0) | 2023.03.16 |
[MSSQL] Dateadd 함수 사용법 (0) | 2023.03.15 |
[MSSQL] Select Into / 테이블 복사 쿼리 사용 방법 (0) | 2023.03.14 |
[MSSQL] Create Temp Table / 임시 테이블 생성 쿼리 (0) | 2023.03.12 |
[MSSQL] SQL SERVER Table NOLOCK 쿼리 (0) | 2023.03.11 |
[MSSQL] Truncate Table / 테이블 데이터 전체 삭제 쿼리 (0) | 2023.03.10 |
[MSSQL] Delete Table 테이블 데이터 삭제 방법 및 예시 (0) | 2023.03.10 |