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

MySQL에서 두 열의 차이를 새로운 열로 구하는 방법

MySQL에서 두 열의 차이를 새로운 열로 구하는 방법

데이터베이스 작업을 하다 보면 최솟값과 최댓값처럼 서로 연관된 두 숫자형 열의 차이를 계산해 별도의 열로 출력해야 하는 경우가 자주 있습니다. MySQL에서는 SELECT 문 안에서 산술 연산자(-)를 활용하면 아주 간단하게 처리할 수 있습니다. 이번 글에서는 예제 테이블을 직접 만들어 보면서 두 열의 차이를 새로운 열로 가져오는 방법을 단계별로 알아보겠습니다.

1. 예제 테이블 생성

먼저 차이를 계산할 두 개의 열(LowValue, HighValue)을 가진 테이블을 생성합니다.

mysql> create table DemoTable
(
    Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    LowValue int,
    HighValue int
);
Query OK, 0 rows affected (0.62 sec)

2. 샘플 데이터 삽입

INSERT 명령을 사용해 테이블에 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(LowValue,HighValue) values(100,200);
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable(LowValue,HighValue) values(300,700);
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable(LowValue,HighValue) values(1000,2000);
Query OK, 1 row affected (0.13 sec)

3. 저장된 데이터 확인

SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+----+----------+-----------+
| Id | LowValue | HighValue |
+----+----------+-----------+
| 1  | 100      | 200       |
| 2  | 300      | 700       |
| 3  | 1000     | 2000      |
+----+----------+-----------+
3 rows in set (0.00 sec)

4. 두 열의 차이 계산하기

핵심은 SELECT 절에서 HighValue - LowValue처럼 두 열을 빼고, AS 키워드로 결과 열의 별칭을 지정하는 것입니다. 이렇게 하면 실제 테이블에는 존재하지 않지만 쿼리 결과에는 새로운 열처럼 표시됩니다.

mysql> select tbl.Id,tbl.LowValue,tbl.HighValue, 
   HighValue-LowValue AS DifferenceBetweenTwoColumns from DemoTable tbl;

실행 결과는 다음과 같습니다.

+----+----------+-----------+-----------------------------+
| Id | LowValue | HighValue | DifferenceBetweenTwoColumns |
+----+----------+-----------+-----------------------------+
| 1  | 100      | 200       | 100                         |
| 2  | 300      | 700       | 400                         |
| 3  | 1000     | 2000      | 1000                        |
+----+----------+-----------+-----------------------------+
3 rows in set (0.00 sec)

추가 팁

만약 값의 크기와 관계없이 항상 양수인 차이가 필요하다면 ABS(HighValue - LowValue)처럼 ABS() 함수를 함께 사용하면 됩니다. 또한 이런 계산 값을 자주 사용한다면 MySQL 5.7 이상에서 지원하는 생성 열(Generated Column) 기능을 활용해 테이블 자체에 계산 열을 정의해 두는 것도 좋은 방법입니다.