데이터베이스에서 집계 함수를 사용하여 여러 테이블의 데이터를 조합하고 분석하는 것은 매우 유용합니다. 특히, JOIN을 사용하여 여러 테이블을 연결할 수 있다면 더욱 강력한 결과를 얻을 수 있습니다. 이번 블로그 포스트에서는 JOIN을 사용하여 여러 테이블에서 집계 함수를 사용하는 방법에 대해 알아보겠습니다.
1. INNER JOIN을 사용한 집계 함수
INNER JOIN은 두 개 이상의 테이블을 조합하여 새로운 결과를 만들기 위해 사용되는 JOIN 유형입니다. 집계 함수를 사용하기 위해 INNER JOIN을 사용하는 예제를 살펴보겠습니다.
SELECT customers.customer_name, orders.order_date, SUM(orders.order_total)
FROM customers
INNER JOIN orders
ON customers.customer_id = orders.customer_id
GROUP BY customers.customer_name, orders.order_date;
위의 SQL 문은 “customers” 테이블과 “orders” 테이블을 INNER JOIN하고, customer 이름, 주문 날짜별 주문 총액 합계를 가져오는 것을 보여줍니다. 집계 함수인 SUM을 사용하여 주문 총액을 계산하고, GROUP BY를 사용하여 customer 이름과 주문 날짜별로 그룹화합니다.
2. LEFT JOIN을 사용한 집계 함수
LEFT JOIN은 왼쪽 테이블을 기준으로 오른쪽 테이블을 조합하는 JOIN 유형입니다. 왼쪽 테이블의 모든 레코드를 포함하면서 연결된 오른쪽 테이블의 데이터가 없는 경우에도 결과를 반환합니다. LEFT JOIN을 사용하여 집계 함수를 사용하는 예제를 살펴보겠습니다.
SELECT customers.customer_name, COUNT(orders.order_id)
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id
GROUP BY customers.customer_name;
위의 SQL 문은 “customers” 테이블과 “orders” 테이블을 LEFT JOIN하고, customer별로 주문 수를 계산하는 것을 보여줍니다. 집계 함수인 COUNT를 사용하여 주문 수를 계산하고, GROUP BY를 사용하여 customer 이름별로 그룹화합니다.
3. RIGHT JOIN을 사용한 집계 함수
RIGHT JOIN은 오른쪽 테이블을 기준으로 왼쪽 테이블을 조합하는 JOIN 유형입니다. 오른쪽 테이블의 모든 레코드를 포함하면서 연결된 왼쪽 테이블의 데이터가 없는 경우에도 결과를 반환합니다. RIGHT JOIN을 사용하여 집계 함수를 사용하는 예제를 살펴보겠습니다.
SELECT customers.customer_name, COUNT(orders.order_id)
FROM customers
RIGHT JOIN orders
ON customers.customer_id = orders.customer_id
GROUP BY customers.customer_name;
위의 SQL 문은 “customers” 테이블과 “orders” 테이블을 RIGHT JOIN하고, customer별로 주문 수를 계산하는 것을 보여줍니다. 집계 함수인 COUNT를 사용하여 주문 수를 계산하고, GROUP BY를 사용하여 customer 이름별로 그룹화합니다.
결론
JOIN을 사용하여 여러 테이블에서 집계 함수를 사용하는 것은 데이터 분석 및 조작에 있어서 매우 유용한 기능입니다. INNER JOIN, LEFT JOIN, RIGHT JOIN을 사용하여 필요한 데이터를 조합하여 집계 함수를 사용할 수 있습니다. 위의 예제를 참고하여 다양한 상황에서 JOIN과 집계 함수를 적용해 보세요!