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

MySQL에서 두 개 이상의 필드 중 가장 큰 값 구하는 방법

MySQL에서 두 개 이상의 필드(컬럼)에 저장된 값 중 가장 큰 값을 확인하려면 GREATEST() 함수를 사용하면 됩니다. 이 함수는 전달된 여러 인자 중 가장 큰 값을 반환하며, MAX() 함수와 함께 사용하면 각 컬럼의 최대값을 한 번에 비교할 수 있습니다.

GREATEST() 함수 기본 문법

SELECT GREATEST(MAX(yourColumnName1), MAX(yourColumnName2), ............... MAX(yourColumnNameN)) FROM yourTableName;

문법이 어떻게 동작하는지 실제 예제를 통해 살펴보겠습니다. 먼저 세 개의 컬럼을 가진 테이블을 생성합니다.

예제 테이블 생성

mysql> create table GreatestOfTwoOrMore
-> (
-> Marks1 int,
-> Marks2 int,
-> Marks3 int
-> );
Query OK, 0 rows affected (0.57 sec)

레코드 삽입하기

다음 쿼리로 테이블에 데이터를 삽입합니다.

mysql> insert into GreatestOfTwoOrMore values(23,78,89);
Query OK, 1 row affected (0.16 sec)
mysql> insert into GreatestOfTwoOrMore values(50,100,150);
Query OK, 1 row affected (0.24 sec)
mysql> insert into GreatestOfTwoOrMore values(100,500,2000);
Query OK, 1 row affected (0.15 sec)

삽입된 데이터 확인

아래 쿼리로 방금 입력한 모든 값을 조회해 보겠습니다.

mysql> select *from GreatestOfTwoOrMore;

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

+--------+--------+--------+
| Marks1 | Marks2 | Marks3 |
+--------+--------+--------+
|     23 |     78 |     89 |
|     50 |    100 |    150 |
|    100 |    500 |   2000 |
+--------+--------+--------+
3 rows in set (0.00 sec)

GREATEST()로 전체 최대값 조회하기

이제 앞서 설명한 개념을 적용하여, 두 개 이상의 필드에서 가장 큰 값을 구하는 쿼리를 실행해 보겠습니다.

mysql> SELECT GREATEST(MAX(marks1),MAX(marks2),MAX(marks3)) from GreatestOfTwoOrMore;

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

+-----------------------------------------------+
| GREATEST(MAX(marks1),MAX(marks2),MAX(marks3)) |
+-----------------------------------------------+
|                                            2000 |
+-----------------------------------------------+
1 row in set (0.06 sec)

결과를 보면 세 개의 컬럼(Marks1, Marks2, Marks3) 전체에서 가장 큰 값인 2000이 반환된 것을 확인할 수 있습니다. 이처럼 GREATEST() 함수 안에 각 컬럼의 MAX() 값을 넣어주면, 여러 필드에 걸친 최대값을 간단하고 효율적으로 구할 수 있습니다.