MySQL에서 특정 열에 저장된 값들의 마지막 3자리 숫자만 추출하여 그 합계를 구해야 하는 경우가 있습니다. 예를 들어 코드 번호나 일련번호에서 뒤 세 자리만 활용해야 할 때 유용합니다.
이때는 집계 함수인 SUM()과 문자열을 오른쪽부터 잘라내는 RIGHT() 함수를 함께 사용하면 됩니다. RIGHT(열이름, 3)은 각 값의 마지막 3자리를 반환하며, 이를 SUM()으로 감싸면 전체 합계를 손쉽게 계산할 수 있습니다.
1. 테이블 생성하기
먼저 실습에 사용할 테이블을 생성하겠습니다.
mysql> create table DemoTable
(
Code int
);
Query OK, 0 rows affected (0.77 sec)2. 샘플 데이터 삽입하기
INSERT 명령을 사용하여 몇 개의 레코드를 추가합니다.
mysql> insert into DemoTable values(5464322); Query OK, 1 row affected (0.21 sec) mysql> insert into DemoTable values(90884); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(23455644); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(4353633); Query OK, 1 row affected (0.11 sec)
3. 저장된 데이터 확인하기
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+----------+ | Code | +----------+ | 5464322 | | 90884 | | 23455644 | | 4353633 | +----------+ 4 rows in set (0.00 sec)
4. 마지막 3자리 숫자의 합계 구하기
다음은 열의 모든 값에서 마지막 3자리를 추출하여 합계를 구하는 쿼리입니다.
mysql> select sum(right(Code,3)) AS SumOfLast3Digit from DemoTable;
실행 결과는 아래와 같습니다.
+-----------------+ | SumOfLast3Digit | +-----------------+ | 2483 | +-----------------+ 1 row in set (0.00 sec)
결과 검증
각 값의 마지막 3자리를 직접 확인해 보면 결과가 정확함을 알 수 있습니다.
- 5464322 → 322
- 90884 → 884
- 23455644 → 644
- 4353633 → 633
322 + 884 + 644 + 633 = 2483으로, 쿼리 결과와 일치합니다.
정리
이처럼 MySQL에서는 SUM(RIGHT(열이름, N)) 조합을 사용하여 열 값들의 마지막 N자리 숫자 합계를 간단하게 구할 수 있습니다. 참고로 RIGHT() 함수는 문자열 기준으로 동작하지만, 숫자형 데이터에도 자동으로 적용되어 편리하게 사용할 수 있습니다. 만약 왼쪽(앞) 자리를 추출하고 싶다면 LEFT() 함수를 같은 방식으로 활용하면 됩니다.