MySQL에서 두 개의 컬럼(열) 값 중 더 큰 값을 구하려면 GREATEST() 함수를 사용해야 합니다. 이 함수는 전달된 인수들 중 가장 큰 값을 반환하는 내장 함수로, 두 개 이상의 값 비교에도 활용할 수 있습니다.
GREATEST() 함수 기본 문법
SELECT GREATEST(yourColumnName1, yourColumnName2) AS anyAliasName FROM yourTableName;
예제 테이블 생성하기
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> CREATE TABLE DemoTable
(
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Number1 int,
Number2 int
);
Query OK, 0 rows affected (0.63 sec)다음으로 INSERT 명령을 사용하여 테이블에 샘플 데이터를 삽입합니다.
mysql> INSERT INTO DemoTable(Number1, Number2) VALUES(1000, 10000); Query OK, 1 row affected (0.49 sec) mysql> INSERT INTO DemoTable(Number1, Number2) VALUES(600, 900); Query OK, 1 row affected (0.12 sec) mysql> INSERT INTO DemoTable(Number1, Number2) VALUES(12, 9); Query OK, 1 row affected (0.33 sec) mysql> INSERT INTO DemoTable(Number1, Number2) VALUES(19, 56); Query OK, 1 row affected (0.17 sec)
저장된 데이터 확인하기
SELECT 명령으로 테이블에 저장된 레코드를 조회해 보겠습니다.
mysql> SELECT * FROM DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+----+---------+---------+ | Id | Number1 | Number2 | +----+---------+---------+ | 1 | 1000 | 10000 | | 2 | 600 | 900 | | 3 | 12 | 9 | | 4 | 19 | 56 | +----+---------+---------+ 4 rows in set (0.00 sec)
GREATEST() 함수로 두 컬럼 중 큰 값 조회하기
이제 GREATEST() 함수를 사용하여 두 컬럼 값 중 더 큰 값을 조회하는 쿼리를 실행해 보겠습니다.
mysql> SELECT GREATEST(Number1, Number2) AS MAXIMUM_NUMBER_OF_TWO_COLUMNS FROM DemoTable;
실행 결과는 다음과 같습니다.
+-------------------------------+ | MAXIMUM_NUMBER_OF_TWO_COLUMNS | +-------------------------------+ | 10000 | | 900 | | 12 | | 56 | +-------------------------------+ 4 rows in set (0.00 sec)
결과 분석
출력 결과를 보면 첫 번째 행에서 1000과 10000을 비교했을 때 더 큰 값인 10000이 반환된 것을 확인할 수 있습니다. 마찬가지 방식으로 나머지 행에서도 각각 600과 900 중에서는 900, 12와 9 중에서는 12, 19와 56 중에서는 56이 반환됩니다.
참고 사항
GREATEST() 함수를 사용할 때 한 가지 주의할 점이 있습니다. 인수 중 하나라도 NULL 값이 포함되어 있으면 결과도 NULL을 반환합니다. 만약 NULL 값을 무시하고 비교하고 싶다면 COALESCE() 함수와 함께 활용하는 방법을 고려해 볼 수 있습니다.