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

MySQL에서 최솟값을 가진 데이터를 조회하는 방법 – MIN() 함수 활용법

MySQL에서 필드의 최솟값으로 데이터 조회하기

특정 필드가 테이블 내에서 가장 작은 값을 가지는 행(row)을 조회하고 싶다면, MySQL의 집계 함수 MIN()을 서브쿼리와 함께 사용하면 됩니다. 이 방법은 여러 상품 중 가장 저렴한 상품을 찾거나, 최저 점수를 받은 학생을 조회하는 등 다양한 상황에서 유용하게 활용됩니다.

기본 문법

SELECT *FROM yourTableName WHERE yourColumnName=(SELECT MIN(yourColumnName) FROM yourTableName);

위 문법의 핵심은 WHERE 절에서 서브쿼리를 사용해 해당 컬럼의 최솟값을 먼저 구한 뒤, 그 값과 일치하는 전체 행을 반환한다는 점입니다.

예제 테이블 생성하기

문법을 제대로 이해하기 위해 먼저 예제 테이블을 생성해 보겠습니다.

mysql> create table MinValueDemo
-> (
-> ProductId int,
-> ProductName varchar(100),
-> ProductPrice int
-> );
Query OK, 0 rows affected (0.77 sec)

데이터 삽입하기

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

mysql> insert into MinValueDemo values(1,'product-1',4500);
Query OK, 1 row affected (0.14 sec)

mysql> insert into MinValueDemo values(2,'product-2',4340);
Query OK, 1 row affected (0.22 sec)

mysql> insert into MinValueDemo values(3,'product-3',4110);
Query OK, 1 row affected (0.18 sec)

mysql> insert into MinValueDemo values(4,'product-4',4344);
Query OK, 1 row affected (0.16 sec)

mysql> insert into MinValueDemo values(5,'product-5',4103);
Query OK, 1 row affected (0.13 sec)

전체 데이터 확인하기

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

mysql> select *from MinValueDemo;

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

+-----------+-------------+--------------+
| ProductId | ProductName | ProductPrice |
+-----------+-------------+--------------+
| 1 | product-1 | 4500 |
| 2 | product-2 | 4340 |
| 3 | product-3 | 4110 |
| 4 | product-4 | 4344 |
| 5 | product-5 | 4103 |
+-----------+-------------+--------------+
5 rows in set (0.00 sec)

MIN() 함수로 최솟값 데이터 조회하기

이제 MIN() 집계 함수를 사용해 'ProductPrice' 컬럼의 값이 가장 작은 행을 조회하는 쿼리를 실행해 보겠습니다.

mysql> select *from MinValueDemo
-> where ProductPrice=(select min(ProductPrice) from MinValueDemo);

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

+-----------+-------------+--------------+
| ProductId | ProductName | ProductPrice |
+-----------+-------------+--------------+
| 5 | product-5 | 4103 |
+-----------+-------------+--------------+
1 row in set (0.08 sec)

결과를 보면 ProductPrice가 4103으로 가장 낮은 'product-5'만 정상적으로 조회된 것을 확인할 수 있습니다. 참고로 반대로 최댓값을 가진 데이터를 구하고 싶다면, MIN() 대신 MAX() 함수를 동일한 방식으로 적용하면 됩니다.