> 데이터 베이스 > MySQL 튜토리얼 > SQL을 사용하여 열에서 최대 값으로 행을 선택하는 방법은 무엇입니까?

SQL을 사용하여 열에서 최대 값으로 행을 선택하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2025-01-25 20:52:10
원래의
881명이 탐색했습니다.

How to Select Rows with the Maximum Value in a Column Using SQL?

SQL Tip: 컬럼의 최대값에 해당하는 행을 효율적으로 필터링

MySQL 데이터베이스에서는 레코드 그룹에서 특정 컬럼의 최대값에 해당하는 행을 추출해야 하는 경우가 종종 있습니다. 이 문서에서는 두 가지 주요 방법을 설명합니다.

방법 1: 하위 쿼리 및 연결

이 방법은 하위 쿼리를 사용하여 각 그룹화의 최대값을 결정합니다. 하위 쿼리는 그룹 식별자별로 행을 그룹화하고 지정된 열의 최대값을 반환합니다. 그런 다음 그룹화 식별자와 최대값을 조인 조건으로 사용하여 결과를 기본 테이블과 조인합니다.

예:

<code class="language-sql">SELECT a.id, a.rev, a.contents
FROM YourTable a
INNER JOIN (
    SELECT id, MAX(rev) rev
    FROM YourTable
    GROUP BY id
) b ON a.id = b.id AND a.rev = b.rev</code>
로그인 후 복사

방법 2: 자체 연결 및 필터링

또 다른 방법은 왼쪽 외부 조인을 사용하여 기본 테이블 자체를 조인하는 것입니다. 그룹화 식별자에는 조인 조건이 적용되며 조인의 왼쪽과 오른쪽 값을 비교하기 위한 추가 조건이 추가됩니다. 필터는 오른쪽에 해당 행이 없는 행(즉, 가장 큰 값이 있는 행)만 결과에 포함되도록 합니다.

예:

<code class="language-sql">SELECT a.*
FROM YourTable a
LEFT OUTER JOIN YourTable b
ON a.id = b.id AND a.rev < b.rev
WHERE b.id IS NULL;</code>
로그인 후 복사

요약

두 방법 모두 동일한 결과를 제공하며 ANSI SQL 표준을 준수합니다. 또한 상대적으로 성능 친화적이지만 실제 성능은 데이터베이스 시스템, 스키마 디자인 및 인덱스 존재 여부에 따라 달라집니다. 특정 시나리오에 가장 적합한 솔루션을 결정하려면 두 가지 접근 방식을 모두 벤치마킹하는 것이 좋습니다.

위 내용은 SQL을 사용하여 열에서 최대 값으로 행을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿