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

MySQL에서 두 열의 합이 최대인 행 조회하는 방법

MySQL에서 두 열의 합(Value1 + Value2)이 가장 큰 데이터를 조회하려면 집계 함수 MAX()서브쿼리를 함께 사용하면 됩니다. 이 글에서는 예제 테이블을 만들고 단계별로 방법을 살펴보겠습니다.

1. 예제 테이블 생성

먼저 두 개의 정수형 컬럼을 가진 테이블을 생성합니다.

mysql> create table DemoTable1587
    -> (
    -> Value1 int,
    -> Value2 int
    -> );
Query OK, 0 rows affected (0.59 sec)

2. 샘플 데이터 삽입

INSERT 문을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable1587 values(30,50);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable1587 values(80,90);
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1587 values(40,67);
Query OK, 1 row affected (0.13 sec)

3. 전체 데이터 확인

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

mysql> select * from DemoTable1587;

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

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     30 |     50 |
|     80 |     90 |
|     40 |     67 |
+--------+--------+
3 rows in set (0.00 sec)

4. 두 열의 합이 최대인 행 조회하기

핵심 아이디어는 간단합니다. WHERE 절에서 두 열의 합(Value1 + Value2)이, 서브쿼리로 구한 전체 합의 최댓값과 일치하는 행만 필터링하는 것입니다.

mysql> select * from DemoTable1587
    -> where Value1+Value2=( select max(Value1+Value2) from DemoTable1587);

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

+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     80 |     90 |
+--------+--------+
1 row in set (0.03 sec)

동작 원리 정리

서브쿼리 select max(Value1+Value2) from DemoTable1587는 테이블 전체를 대상으로 두 열의 합 중 가장 큰 값(여기서는 80 + 90 = 170)을 계산합니다. 그런 다음 외부 쿼리는 이 값과 일치하는 행만 반환하므로, 결과적으로 두 열의 합이 최대인 레코드인 (80, 90) 한 건만 조회됩니다.