SQL 그룹 쿼리 최대값
이 질문은 각 고유한 "이름" 필드에 대해 "전체" 값이 가장 높은 레코드를 찾는 것을 목표로 테이블에서 특정 데이터를 추출하기 위해 고안되었습니다. 이는 각 그룹의 마지막 레코드를 찾는 문제와는 다릅니다.
이 목표를 달성하기 위한 두 가지 SQL 쿼리 방법은 다음과 같습니다.
방법 1: 하위 쿼리
<code class="language-sql">SELECT Name, Top, Total FROM sometable WHERE Total = ( SELECT MAX(Total) FROM sometable i WHERE i.Name = sometable.Name );</code>
이 쿼리는 하위 쿼리를 사용하여 각 Name
그룹에서 최대 Total
값을 찾은 다음 해당 최대 값과 일치하는 레코드만 선택합니다.
방법 2: 자체 연결
<code class="language-sql">SELECT Name, Top, Total FROM sometable INNER JOIN ( SELECT MAX(Total) AS Total, Name FROM sometable GROUP BY Name ) AS max ON max.Name = sometable.Name AND max.Total = sometable.Total;</code>
이 쿼리는 INNER JOIN
을 사용하여 sometable
를 각 Name
그룹의 최대 Total
값을 계산하는 하위 쿼리와 결합합니다. INNER JOIN
조건은 Total
값이 각 그룹의 최대값과 일치하는 레코드만 선택되도록 합니다.
두 방법 모두 동일한 결과를 제공합니다.
Name | Top | Total |
---|---|---|
cat | 3 | 20 |
horse | 4 | 4 |
dog | 6 | 9 |
위 내용은 SQL에서 각 이름 그룹의 최대 합계를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!