CTE(Common Table Expressions) 활용: SQL 쿼리 간결화와 가독성 향상
Data Analyst

빅데이터 관련 자료/[SQL] Basic

CTE(Common Table Expressions) 활용: SQL 쿼리 간결화와 가독성 향상

carpe08 2023. 8. 14. 13:09
320x100
320x100

SQL 쿼리를 작성하다 보면, 반복적인 서브쿼리나 중첩 쿼리로 인해 쿼리의 가독성이 떨어지는 경우가 있습니다.

CTE(Common Table Expressions)는 이런 문제를 해결하고 쿼리를 더 간결하고 이해하기 쉽게 작성할 수 있는 강력한 기능입니다.

초보자도 이해하기 쉽게 CTE의 개념과 활용 방법을 다루며, 실제 예제를 통해 CTE를 활용한 SQL 쿼리를 살펴보겠습니다.



CTE(Common Table Expressions)란?

  CTE는 임시적으로 정의되는 테이블로, 쿼리 안에서 서브쿼리처럼 사용되지만 중복 코드를 줄이고 가독성을 향상시키는 데 사용됩니다. WITH 키워드를 사용하여 CTE를 정의하며, 쿼리의 일부로 여러 번 참조할 수 있습니다.

WITH cte_name (column1, column2, ...) AS (
    -- CTE 쿼리 정의
)
SELECT * FROM cte_name;



활용 예시


Suppliers와 Products라는 두 개의 테이블이 있다고 가정해봅시다. 각 Supplier가 공급한 제품 수와 함께 Supplier의 이름을 조회하는 쿼리를 생각해봅시다.

SELECT S.SupplierName, (
    SELECT COUNT(*)
    FROM Products P
    WHERE P.SupplierID = S.SupplierID
) AS ProductCount
FROM Suppliers S;



CTE를 사용한 예제:

WITH ProductCounts AS (
    SELECT SupplierID, COUNT(*) AS ProductCount
    FROM Products
    GROUP BY SupplierID
)
SELECT S.SupplierName, PC.ProductCount
FROM Suppliers S
JOIN ProductCounts PC ON S.SupplierID = PC.SupplierID;



CTE의 장점


1. 가독성 향상: CTE를 사용하면 쿼리를 논리적 블록으로 나눌 수 있어 가독성이 향상됩니다.
2. 코드 재사용: 동일한 CTE를 여러 번 참조하여 중복 코드를 방지할 수 있습니다.
3. 최적화 가능성: 명시적인 이름을 가진 CTE를 사용하면 최적화가 더 효율적으로 수행될 수 있습니다.

 

결론적으로 말씀드리자면, CTE는 SQL 쿼리 작성을 간결하고 가독성 있게 만들어주는 강력한 도구입니다.

반복적인 서브쿼리를 피하고, 복잡한 쿼리를 더 명확하게 표현할 수 있도록 CTE를 적극적으로 활용하는 것이 좋습니다.

320x100
320x100