Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 열의 모든 값에 대한 마지막 3자리 숫자 합계 구하기

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() 함수를 같은 방식으로 활용하면 됩니다.