SQL 쿼리에서 최소값을 갖는 고유 행을 선택하는 방법은 무엇입니까?
데이터베이스에서는 특정 열의 최소값이 포함된 레코드를 추출해야 하는 경우가 많습니다. 테이블에 'id', 'game' 및 'point' 열이 포함되어 있다고 가정합니다. 가장 작은 '포인트' 값('게임'으로 그룹화)이 있는 행만 선택하려면 다음과 같은 유효한 SQL 쿼리를 사용할 수 있습니다.
<code class="language-sql">SELECT tbl.* FROM TableName tbl INNER JOIN ( SELECT Id, MIN(Point) MinPoint FROM TableName GROUP BY Id ) tbl1 ON tbl1.id = tbl.id WHERE tbl1.MinPoint = tbl.Point</code>
이 쿼리는 각 고유 'id'에 대해 가장 작은 '포인트' 값을 가진 행만 선택되도록 합니다. 괄호 안의 하위 쿼리는 각 'id'에 대한 최소 '포인트' 값을 계산하여 임시 열 'MinPoint'에 저장합니다. 그런 다음 기본 쿼리는 공통 열 'id'를 기반으로 원본 테이블('TableName')을 이 임시 테이블과 조인합니다.
'tbl1.MinPoint = tbl.Point' 조건을 필터링하여 'point' 값이 각 'id' 그룹 내의 최소값과 일치하는 행만 반환되도록 쿼리합니다. 이렇게 하면 각 '게임'에 대해 가장 작은 '포인트' 값을 가진 고유 행이 선택되는 원하는 출력이 생성됩니다.
예:
다음 형식을 고려하세요.
id | game | point |
---|---|---|
1 | x | 5 |
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
3 | y | 5 |
3 | z | 8 |
이 테이블에 대해 위 쿼리를 실행하면 다음과 같은 출력이 생성됩니다.
id | game | point |
---|---|---|
1 | z | 4 |
2 | y | 6 |
3 | x | 2 |
보시다시피 쿼리는 각 '게임'에 대해 가장 작은 '포인트' 값을 가진 고유 행을 올바르게 식별합니다.
참고: 원본 샘플 데이터와 결과 사이에 불일치가 있는 경우 SQL 문 결과와 일치하도록 결과 테이블을 수정했습니다. 수정된 결과표에는 각 id
에 대해 point
값이 가장 작은 행이 표시됩니다. game
그룹화를 통해 가장 작은 point
값을 선택해야 한다면 SQL 문을 수정해야 합니다.
위 내용은 SQL에서 최소값을 사용하여 고유한 행을 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!