SQL 효율적인 필터링: 각 고유 식별자에 대한 최소값 행 가져오기
데이터베이스 관리에서는 고유한 값과 그에 상응하는 최소값을 갖는 레코드를 추출해야 하는 경우가 많습니다. 고유 식별자 열과 관련 값 열을 포함하는 테이블이 있고, 각 고유 식별자에서 최소값에 해당하는 행을 검색하는 것이 목표라고 가정합니다.
도전
다음 형식을 고려하세요.
id | game | point |
---|---|---|
1 | x | 5 |
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
3 | y | 5 |
3 | z | 8 |
목표는 각 고유 game
값에 대해 가장 작은 point
값을 갖는 행을 찾는 것입니다. 예상 출력은 다음과 같습니다.
id | game | point |
---|---|---|
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
솔루션
다음 SQL 쿼리를 사용하여 이를 수행할 수 있습니다.
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) AS MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point;</code>
설명
Id
에 대한 최소 Point
값을 계산하고 결과를 파생 테이블 tbl1
에 저장합니다. Id
열을 기반으로 원본 테이블 TableName
을 tbl1
과 조인합니다. Point
에서) 가장 작은 tbl1
값이 원본 테이블의 Point
값과 일치하는 행만 포함하도록 결과를 필터링합니다. 이 쿼리를 사용하면 game
열을 기준으로 그룹화된 Point
값이 가장 작은 고유 행을 효율적으로 검색할 수 있습니다.
위 내용은 SQL에서 각 고유 식별자에 대한 최소값이 있는 행을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!