MySQL에서 특정 열 값의 크기와 합계 구하기
MySQL에서는 CHAR_LENGTH() 함수와 SUM()> 함수를 함께 사용하면 특정 열 값의 글자 수(크기)를 구하고, 그 합계를 손쉽게 표시할 수 있습니다. 이번 글에서는 예제 테이블을 만들고, 조건에 맞는 행들의 열 값 크기 합계를 구하는 과정을 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable1612
-> (
-> FirstName varchar(20),
-> LastName varchar(20)
-> );
Query OK, 0 rows affected (0.87 sec)
2. 데이터 삽입
INSERT 명령을 사용해 테이블에 레코드를 추가합니다.
mysql> insert into DemoTable1612 values('David','Brown');
Query OK, 1 row affected (0.75 sec)
mysql> insert into DemoTable1612 values('John','Smith');
Query OK, 1 row affected (0.21 sec)
mysql> insert into DemoTable1612 values('Bob','Taylor');
Query OK, 1 row affected (0.13 sec)3. 전체 레코드 조회
SELECT 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable1612;
위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------+----------+
| FirstName | LastName |
+-----------+----------+
| David | Brown |
| John | Smith |
| Bob | Taylor |
+-----------+----------+
3 rows in set (0.00 sec)
4. 선택된 행의 열 값 크기 합계 구하기
이제 특정 조건에 해당하는 행들에서 FirstName 열 값의 글자 수를 구하고, 그 합계를 표시하는 쿼리를 실행합니다.
mysql> select sum(char_length(FirstName)) from DemoTable1612 where LastName IN('Brown','Smith','Taylor');위 쿼리는 다음과 같은 결과를 출력합니다.
+-----------------------------+
| sum(char_length(FirstName)) |
+-----------------------------+
| 12 |
+-----------------------------+
1 row in set (0.00 sec)
결과 해설
CHAR_LENGTH() 함수는 문자열의 글자 수를 반환하며, SUM() 함수는 이 값들을 모두 더해 합계를 계산합니다. 위 예제에서는 'David'(5자) + 'John'(4자) + 'Bob'(3자) = 12자가 되어, 최종 결과로 12가 출력된 것입니다. 이처럼 WHERE 절과 IN 연산자를 함께 사용하면 원하는 조건의 행만 대상으로 크기 합계를 구할 수 있습니다.