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 함수를 사용해야 합니다.
'MySQL' 카테고리의 다른 글
| MySQL에서 IF와 CASE 활용하기 (1) | 2024.11.29 |
|---|---|
| MySQL에서 서브쿼리(SubQuery) 활용하기 (3) | 2024.11.29 |
| MySQL에서 COUNT 함수 활용하기 (0) | 2024.11.28 |
| MySQL에서 LIKE 키워드 활용하기 (0) | 2024.11.28 |
| MySQL에서 LIMIT 키워드 활용하기 (0) | 2024.11.28 |