본문 바로가기

MySQL

MySQL에서 SUM 함수 활용하기

SQL의 SUM 함수는 특정 열의 숫자 값들을 합산하여 총합을 계산하는 데 사용됩니다. 이 글에서는 SUM 함수의 기본 구문, 사용 예시, 그리고 다양한 사용 사례들을 자세히 설명합니다.

 

기본 구문

SUM 함수의 기본 구문은 다음과 같습니다.

 

SELECT SUM(column_name)

FROM table_name

WHERE condition;

 

  • column_name: 합산할 열 이름입니다.
  • table_name: 데이터를 조회할 테이블 이름입니다.
  • condition: WHERE 절에서 사용할 조건문입니다.

 

사용 예시

전체 열의 합산

다음 예시는 sales 테이블에서 amount 열의 전체 합을 계산하는 쿼리입니다.

 

SELECT SUM(amount)

FROM sales;

 

조건을 만족하는 열의 합산

다음 예시는 sales 테이블에서 order_date가 2023년인 주문들의 amount 열의 합을 계산하는 쿼리입니다.

 

SELECT SUM(amount)

FROM sales

WHERE YEAR(order_date) = 2023;

 

유니크한 값의 합산

SUM 함수와 DISTINCT 키워드를 함께 사용하여 유니크한 값들의 합을 계산할 수 있습니다.

 

SELECT SUM(DISTINCT amount)

FROM sales;

 

사용 사례

총 매출 또는 총 수입 계산

SUM 함수는 특정 기간의 총 매출 또는 총 수입을 계산하는 데 자주 사용됩니다.

 

SELECT SUM(amount)

FROM sales

WHERE order_date BETWEEN '2023-01-01' AND '2023-12-31';

 

총 수량 계산

제품의 총 수량을 계산할 때도 사용됩니다.

 

SELECT SUM(quantity)

FROM order_details;

 

분석적 목적

다양한 분석적 목적으로도 사용됩니다. 예를 들어, 각 카테고리별 총 판매액을 계산할 수 있습니다.

 

SELECT category, SUM(amount)

FROM sales

GROUP BY category;

 

GROUP BY와 함께 사용

SUM 함수와 GROUP BY 절을 함께 사용하여 그룹별로 합을 계산할 수 있습니다.

 

SELECT customer_id, SUM(amount)

FROM sales

GROUP BY customer_id;

 

표현식과 함께 사용

SUM 함수 내에서 표현식을 사용하여 계산할 수도 있습니다.

 

SELECT SUM(price * quantity)

FROM order_details;

 

NULL 값 처리

SUM 함수는 NULL 값을 무시합니다. 따라서, NULL 값을 포함한 열에서 합을 계산할 때 NULL 값은 고려되지 않습니다.

 

대소문자와 DISTINCT

SUM 함수에서 ALL DISTINCT를 사용할 수 있습니다. ALL은 모든 값을 합산하고, DISTINCT는 유니크한 값만 합산합니다.

 

SELECT SUM(ALL price) AS Total_Sales_ALL,

              SUM(DISTINCT price) AS Total_Sales_DISTINCT

FROM sales;

 

 

성능 고려 사항

  • 인덱스 사용: 자주 사용되는 열에 인덱스를 생성하여 쿼리 성능을 향상할 수 있습니다.
  • 조건 최적화: WHERE 절의 조건을 최적화하여 불필요한 데이터를 필터링하여 성능을 향상할 수 있습니다.

 

결론

SUM 함수는 데이터베이스에서 숫자 열의 총합을 계산하는 데 매우 유용한 도구입니다. 다양한 사용 사례와 함께 GROUP BY, DISTINCT, 그리고 표현식을 사용하여 복잡한 데이터 분석을 수행할 수 있습니다. 성능을 최적화하기 위해 인덱스 사용과 조건 최적화를 고려하는 것이 중요합니다. 이 정보를 통해, 데이터베이스에서 데이터를 효율적으로 분석하고 조회할 수 있을 것입니다.

추가 팁

  • NULL 값 처리: SUM 함수는 NULL 값을 무시하므로, NULL 값을 포함한 열에서 합을 계산할 때 NULL 값은 고려되지 않습니다.
  • 서브쿼리 사용: SUM 함수를 서브쿼리와 함께 사용하여 복잡한 데이터 분석을 수행할 수 있습니다.
  • 다중 열 계산: 여러 열의 합을 계산하려면 각 열에 대해 별도의 SUM 함수를 사용해야 합니다.