MySQL에서 특정 열(column)의 값들을 모두 더하고 싶다면 집계 함수인 SUM()을 사용하면 됩니다. SUM()은 지정한 열의 전체 행 값을 합산하여 하나의 결과값으로 반환하는 가장 기본적이고 널리 쓰이는 함수입니다.
SUM() 함수 기본 문법
여러 개의 열을 동시에 합산할 수도 있으며, AS 키워드를 이용해 결과 열에 별칭(alias)을 붙이면 출력 결과를 더 읽기 쉽게 만들 수 있습니다.
SELECT SUM(열이름1) AS 별칭1,
SUM(열이름2) AS 별칭2,
SUM(열이름3) AS 별칭3
FROM 테이블이름;
예제 테이블 생성하기
문법을 실제로 이해하기 위해 세 개의 정수형 열을 가진 테이블을 만들어 보겠습니다.
mysql> CREATE TABLE SumDemoOnColumns
-> (
-> First int,
-> Second int,
-> Third int
-> );
Query OK, 0 rows affected (0.56 sec)
데이터 삽입하기
INSERT 명령어를 사용해 테이블에 샘플 데이터를 입력합니다.
mysql> INSERT INTO SumDemoOnColumns VALUES(10,20,30);
Query OK, 1 row affected (0.18 sec)
mysql> INSERT INTO SumDemoOnColumns VALUES(40,50,60);
Query OK, 1 row affected (0.32 sec)
mysql> INSERT INTO SumDemoOnColumns VALUES(70,80,90);
Query OK, 1 row affected (0.10 sec)
mysql> INSERT INTO SumDemoOnColumns VALUES(100,110,120);
Query OK, 1 row affected (0.16 sec)
저장된 데이터 확인하기
SELECT 문으로 테이블의 전체 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM SumDemoOnColumns;
실행 결과는 다음과 같습니다.
+-------+--------+-------+
| First | Second | Third |
+-------+--------+-------+
| 10 | 20 | 30 |
| 40 | 50 | 60 |
| 70 | 80 | 90 |
| 100 | 110 | 120 |
+-------+--------+-------+
4 rows in set (0.00 sec)
SUM()으로 각 열의 합계 구하기
이제 SUM() 함수를 적용해 First, Second, Third 열 각각의 합계를 한 번의 쿼리로 계산해 보겠습니다.
mysql> SELECT SUM(First) AS First,
-> SUM(Second) AS Second,
-> SUM(Third) AS Third
-> FROM SumDemoOnColumns;
실행 결과는 다음과 같습니다.
+-------+--------+-------+
| First | Second | Third |
+-------+--------+-------+
| 220 | 260 | 300 |
+-------+--------+-------+
1 row in set (0.00 sec)
결과 해석
각 열의 합계가 올바르게 계산된 것을 확인할 수 있습니다.
- First: 10 + 40 + 70 + 100 = 220
- Second: 20 + 50 + 80 + 110 = 260
- Third: 30 + 60 + 90 + 120 = 300
추가 팁
SUM() 함수는 숫자형 데이터 타입(INT, DECIMAL, FLOAT 등)에만 사용할 수 있습니다. 또한 NULL 값은 자동으로 무시되므로, 열에 NULL이 포함되어 있어도 오류 없이 나머지 값들의 합계만 반환됩니다. 만약 조건에 맞는 행만 합산하고 싶다면 WHERE 절을 함께 사용하면 됩니다.