가상 테이블과 일시 테이블을 활용한 데이터 가공 연습문제

데이터를 가공하고 분석하기 위해 SQL에서 가상 테이블과 일시 테이블을 사용하는 것은 매우 유용합니다. 이러한 테이블을 사용하여 데이터를 임시로 저장하거나 다른 쿼리의 결과를 활용할 수 있습니다. 이번 문제에서는 가상 테이블과 일시 테이블을 활용하여 데이터를 가공하는 연습을 해보겠습니다.

문제 설명

다음과 같은 Orders 테이블을 가지고 있다고 가정해봅시다.

CREATE TABLE Orders (
    OrderID int,
    CustomerID int,
    OrderDate date,
    TotalAmount decimal(10, 2)
);

데이터베이스에는 해당 테이블을 통해 주문을 관리하고 있는데, 이 데이터를 활용하여 다음 2개의 문제를 해결해야 합니다.

문제 1: 각 고객별로 최근 3개월간의 주문 수와 총 주문 금액을 조회해보세요.

문제를 해결하기 위해 첫 번째로 가상 테이블을 사용하여 최근 3개월간의 주문 데이터를 추출해야 합니다. 아래 SQL 쿼리를 사용하여 가상 테이블을 생성하세요.

SELECT 
    CustomerID, 
    COUNT(*) as OrderCount, 
    SUM(TotalAmount) as TotalAmount
INTO #RecentOrders
FROM Orders
WHERE OrderDate >= DATEADD(month, -3, GETDATE())
GROUP BY CustomerID;

위 쿼리는 최근 3개월간의 주문 데이터를 임시로 저장할 #RecentOrders 가상 테이블을 생성합니다. 이 가상 테이블을 활용하여 최근 3개월간의 주문 수와 총 주문 금액을 확인할 수 있습니다.

다음 쿼리를 실행하여 문제를 해결하세요.

SELECT 
    c.CustomerID, 
    c.CustomerName, 
    r.OrderCount, 
    r.TotalAmount
FROM Customers c
INNER JOIN #RecentOrders r ON c.CustomerID = r.CustomerID;

문제 2: 일시 테이블을 활용하여 월별로 주문 수와 총 주문 금액을 조회해보세요.

두 번째 문제는 월별로 주문 수와 총 주문 금액을 조회하는 것입니다. 이를 위해 일시 테이블을 사용하여 데이터를 임시로 저장하고 사용해야 합니다. 아래 SQL 쿼리를 사용하여 일시 테이블을 생성하세요.

SELECT 
    MONTH(OrderDate) as OrderMonth, 
    COUNT(*) as OrderCount, 
    SUM(TotalAmount) as TotalAmount
INTO #MonthlyOrders
FROM Orders
GROUP BY MONTH(OrderDate)
ORDER BY OrderMonth;

위 쿼리는 월별 주문 데이터를 임시로 저장할 #MonthlyOrders 일시 테이블을 생성합니다. 이 일시 테이블을 활용하여 월별 주문 수와 총 주문 금액을 조회할 수 있습니다.

다음 쿼리를 실행하여 문제를 해결하세요.

SELECT 
    OrderMonth, 
    OrderCount, 
    TotalAmount
FROM #MonthlyOrders;

문제 해결 결과

위 문제를 해결한 결과는 다음과 같습니다.

문제 1: 각 고객별로 최근 3개월간의 주문 수와 총 주문 금액

CustomerID CustomerName OrderCount TotalAmount
1 John Smith 5 1000.00
2 Jane Doe 2 500.00
3 Bob Johnson 3 750.00

문제 2: 월별 주문 수와 총 주문 금액

OrderMonth OrderCount TotalAmount
1 10 2000.00
2 8 1500.00
3 12 2500.00
4 6 1200.00
5 9 1800.00
6 7 1400.00

이렇게 가상 테이블과 일시 테이블을 활용하여 주어진 문제를 해결할 수 있습니다. 데이터를 가공하고 분석하는 과정에서 가상 테이블과 일시 테이블을 활용하면 원하는 결과를 보다 쉽게 얻을 수 있습니다. 이러한 기능을 효과적으로 활용하여 데이터 분석 작업을 진행하면 보다 정확하고 효율적인 결과를 얻을 수 있습니다.

#SQL #데이터분석