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

MySQL에서 행 단위 최댓값 구하기 – GREATEST() 함수 활용법

네, 가능합니다. MySQL에서는 GREATEST() 함수를 사용하면 열(column)이 아닌 행(row) 방향, 즉 여러 컬럼의 값 중에서 최댓값을 손쉽게 구할 수 있습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
    (
    Value1 int,
    Value2 int,
    Value3 int
    );
Query OK, 0 rows affected (0.58 sec)

2. 데이터 삽입하기

INSERT 명령어를 사용해 레코드를 추가합니다.

mysql> insert into DemoTable values(190,395,322);
Query OK, 1 row affected (0.16 sec)

3. 저장된 데이터 확인하기

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

mysql> select *from DemoTable;

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

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| 190    | 395    | 322    |
+--------+--------+--------+
1 row in set (0.00 sec)

4. GREATEST()로 행 단위 최댓값 구하기

이제 GREATEST() 함수를 사용해 세 개 컬럼(Value1, Value2, Value3) 중 가장 큰 값을 행 단위로 조회하는 쿼리를 작성해 보겠습니다.

mysql> select greatest(Value1,Value2,Value3) as GreaterValue from DemoTable;

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

+--------------+
| GreaterValue |
+--------------+
| 395          |
+--------------+
1 row in set (0.04 sec)

결과를 보면 세 값(190, 395, 322) 중 최댓값인 395가 반환된 것을 확인할 수 있습니다.

참고 사항

GREATEST()는 두 개 이상의 인수를 받을 수 있으며, 인수 중 하나라도 NULL이 포함되면 결과도 NULL을 반환합니다. 따라서 NULL 값이 있을 수 있는 컬럼에 사용할 경우 COALESCE() 등을 함께 활용하는 것이 좋습니다. 반대로 최솟값을 구하고 싶다면 LEAST() 함수를 사용하면 됩니다.