SQL Sum
SQL SUM(): 합계 계산
SQL SUM() 함수는 특정 열의 값을 모두 더한 합계를 계산하는 집계 함수입니다. 주로 숫자 데이터에서 합계를 구할 때 사용되며, 특정 조건에 맞는 데이터나 그룹별로 합계를 구할 수 있습니다. SUM() 함수는 데이터 분석, 재무 계산, 통계적 분석 등에서 매우 유용하게 사용됩니다.
1. 기본 SUM() 문법
SUM() 함수의 기본 문법은 다음과 같습니다:
SELECT SUM(열이름)
FROM 테이블이름
WHERE 조건;
- 열이름: 합계를 계산할 열의 이름.
- WHERE 조건: 특정 조건에 맞는 데이터를 선택(선택적).
2. SQL SUM() 예제
2.1 테이블에서 합계 계산
다음은 employees
테이블에서 모든 직원의 급여 합계를 계산하는 예제입니다.
SELECT SUM(salary)
FROM employees;
이 쿼리는 employees
테이블의 급여 합계를 반환합니다.
결과 예시:
SUM(salary)
55000
2.2 조건에 맞는 합계 계산
다음은 Sales
부서에 속한 직원들의 급여 합계를 계산하는 예제입니다.
SELECT SUM(salary)
FROM employees
WHERE department = 'Sales';
이 쿼리는 Sales
부서에 속한 직원들의 급여 합계를 반환합니다.
결과 예시:
SUM(salary)
15000
3. SUM()과 GROUP BY 사용
SUM() 함수는 GROUP BY 절과 함께 사용하여 특정 그룹별로 합계를 계산할 수 있습니다. 예를 들어, 부서별 급여 합계를 계산할 수 있습니다.
예제: 부서별 급여 합계 계산
SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department;
이 쿼리는 각 부서별 급여 합계를 반환합니다.
결과 예시:
department | total_salary |
---|---|
Sales | 15000 |
HR | 10000 |
Engineering | 30000 |
4. SUM()과 WHERE 절 결합
WHERE 절을 사용하여 특정 조건에 맞는 데이터만 선택하고 합계를 계산할 수 있습니다.
예제: 급여가 5,000 이상인 직원들의 급여 합계
SELECT SUM(salary)
FROM employees
WHERE salary >= 5000;
이 쿼리는 급여가 5,000 이상인 직원들의 급여 합계를 반환합니다.
결과 예시:
SUM(salary)
45000
5. SUM()과 DISTINCT 사용
SUM() 함수는 DISTINCT 키워드와 함께 사용하여 중복된 값을 제외하고 합계를 구할 수 있습니다.
예제: 중복되지 않은 급여 합계 계산
SELECT SUM(DISTINCT salary)
FROM employees;
이 쿼리는 중복된 값을 제외한 고유한 급여들의 합계를 반환합니다.
결과 예시:
SUM(DISTINCT salary)
50000
6. SUM()과 HAVING 절 사용
HAVING 절은 GROUP BY와 함께 사용되어 집계된 결과에 조건을 걸 수 있습니다. 이는 WHERE 절이 집계 함수와 함께 사용할 수 없기 때문에 필요합니다.
예제: 급여 합계가 20,000 이상인 부서 조회
SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department
HAVING SUM(salary) >= 20000;
이 쿼리는 급여 합계가 20,000 이상인 부서만 반환합니다.
결과 예시:
department | total_salary |
---|---|
Engineering | 30000 |
7. SUM()과 날짜 데이터 사용
SUM() 함수는 날짜 데이터와 함께 사용할 수 없습니다. 그러나 날짜 열과 연관된 다른 숫자 데이터(예: 매출액)를 그룹화하여 사용할 수 있습니다.
예제: 특정 기간 내 매출 합계 계산
SELECT SUM(sales_amount)
FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-12-31';
이 쿼리는 2023년 동안의 총 매출 합계를 계산합니다.
8. 실전 예제
예제 1: 부서별로 급여 합계 계산
SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department;
이 쿼리는 부서별로 급여 합계를 반환합니다.
예제 2: 급여가 5,000 이상인 직원들의 급여 합계
SELECT SUM(salary)
FROM employees
WHERE salary >= 5000;
이 쿼리는 급여가 5,000 이상인 직원들의 급여 합계를 반환합니다.
예제 3: 급여 합계가 20,000 이상인 부서 조회
SELECT department, SUM(salary) AS total_salary
FROM employees
GROUP BY department
HAVING SUM(salary) >= 20000;
이 쿼리는 급여 합계가 20,000 이상인 부서를 반환합니다.
예제 4: 고유한 급여 합계 조회
SELECT SUM(DISTINCT salary)
FROM employees;
이 쿼리는 중복되지 않은 급여들의 합계를 반환합니다.
요약
SQL SUM() 함수는 테이블에서 특정 열의 값을 모두 더한 합계를 계산하는 데 사용됩니다. 이 함수는 WHERE, GROUP BY, HAVING, DISTINCT와 함께 사용할 수 있으며, 그룹별 합계나 조건에 따른 합계를 구할 수 있습니다. SUM() 함수는 재무 분석, 데이터 집계, 통계적 분석 등에서 매우 중요한 역할을 하며, 데이터를 요약하는 데 유용합니다.