<p><img src="https://img.php.cn/upload/article/000/000/000/173781074242774.jpg" alt="How to Select Only Rows with the Maximum Value in a Specific Column in SQL?
"></p>
<h2>SQL은 열에 최대값이 있는 행만 선택합니다</h2>
<h3>개요</h3>
<p>중복 행이 포함된 테이블이 있는 경우 특정 열에서 최대값이 있는 행만 선택하는 작업이 수행됩니다. </p>
<h3>솔루션</h3>
<p><strong>방법 1: 그룹화 및 집계</strong></p>
<p>가장 직접적인 해결책은 <code>GROUP BY</code> 절과 <code>MAX()</code> 집계 함수를 사용하는 것입니다. </p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><code class="language-sql">SELECT id, MAX(rev)
FROM YourTable
GROUP BY id</code></pre><div class="contentsignin">로그인 후 복사</div></div>
<p>이렇게 하면 그룹 식별자(id)와 각 그룹의 최대 회전수 값이 반환됩니다. </p>
<p><strong>방법 2: 자체 연결 및 필터링</strong></p>
<p>더 발전된 접근 방식은 id 열을 조인 조건으로 사용하여 테이블 자체와 왼쪽 조인을 수행하는 것입니다. </p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><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></pre><div class="contentsignin">로그인 후 복사</div></div>
<p>이 접근 방식은 먼저 각 행을 동일한 ID를 가진 다른 모든 행과 조인합니다. 그런 다음 조인 조건에 <code><</code> 연산자를 사용하여 현재 행보다 rev 값이 높은 모든 행을 삭제합니다. 마지막으로 하위 쿼리는 일치하는 항목이 없고 rev 값이 더 높은 행만 반환되도록 합니다. </p>
<h3>요약</h3>
<p>두 방법 모두 동일한 결과를 생성하며 각 고유 ID에 대해 가장 큰 rev 값이 있는 행을 제공합니다. 두 가지 방법 중 선택은 성능 고려 사항과 가독성에 따라 달라집니다. 특정 데이터베이스 및 데이터 세트에 대한 최상의 접근 방식을 결정하려면 벤치마킹을 권장합니다. </p>
위 내용은 SQL의 특정 열에서 최대 값을 가진 행만 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!