MySQL에서 여러 열의 최솟값 구하기
MySQL에서 테이블의 네 개 열 전체를 대상으로 최소 점수를 찾으려면 LEAST() 함수를 사용하면 됩니다. LEAST() 함수는 인자로 전달된 여러 값 중 가장 작은 값을 반환하는 함수로, 행 단위로 여러 열을 비교할 때 매우 유용합니다.
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable(
Score1 int,
Score2 int,
Score3 int,
Score4 int
);
Query OK, 0 rows affected (0.50 sec)
테이블에 데이터 삽입하기
INSERT 명령을 사용해 테이블에 레코드를 몇 개 추가합니다.
mysql> insert into DemoTable values(88,76,45,56);
Query OK, 1 row affected (0.23 sec)
mysql> insert into DemoTable values(99,78,87,34);
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values(34,32,56,98);
Query OK, 1 row affected (0.44 sec)
저장된 데이터 확인하기
SELECT 문을 사용해 테이블의 모든 레코드를 조회합니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+--------+--------+--------+--------+
| Score1 | Score2 | Score3 | Score4 |
+--------+--------+--------+--------+
| 88 | 76 | 45 | 56 |
| 99 | 78 | 87 | 34 |
| 34 | 32 | 56 | 98 |
+--------+--------+--------+--------+
3 rows in set (0.00 sec)
LEAST() 함수로 최소 점수 조회하기
다음은 데이터베이스의 네 개 열에서 각 행별 최소 점수를 찾는 쿼리입니다. AS 키워드를 사용해 결과 컬럼에 별칭(Alias)을 지정하면 가독성이 좋아집니다.
mysql> select least(Score1,Score2,Score3,Score4) AS MinimumScore from DemoTable;
실행 결과는 다음과 같습니다.
+--------------+
| MinimumScore |
+--------------+
| 45 |
| 34 |
| 32 |
+--------------+
3 rows in set (0.00 sec)
결과를 보면 첫 번째 행에서는 45, 두 번째 행에서는 34, 세 번째 행에서는 32가 각각 네 개 열 중 최솟값으로 반환된 것을 확인할 수 있습니다.
참고 사항
LEAST() 함수와 반대로 여러 값 중 가장 큰 값을 반환하려면 GREATEST() 함수를 사용하면 됩니다. 또한 주의할 점은, 인자 중 하나라도 NULL이 포함되면 LEAST() 함수는 NULL을 반환한다는 것입니다. NULL을 무시하고 최솟값을 구하려면 COALESCE() 함수와 함께 활용하는 방법도 고려해 볼 수 있습니다.