MySQL에서 상위 N개의 최대값을 검색하는 방법
MySQL 테이블을 쿼리하여 최대값이 있는 상위 행을 검색하는 경우 특정 열의 경우 중복 값을 처리하는 방법을 고려하는 것이 중요합니다. 이 문서에서는 이 작업의 미묘한 차이를 자세히 살펴보고 정확한 솔루션을 제공합니다.
정확한 상위 N 행 검색
상위 N개 행만 검색하려면 다음 쿼리를 사용할 수 있습니다. 활용:
select * from t order by value desc limit N
상위 N개 행 및 임의 항목 검색 동점
상위 행의 값이 동일한 경우 위 쿼리를 사용하면 묶인 행이 생략됩니다. 이를 포함하려면 추가 단계가 필요합니다.
select * from t join (select min(value) as cutoff from (select value from t order by value limit N ) tlim ) tlim on t.value >= tlim.cutoff;
이 쿼리는 하위 쿼리를 사용하여 상위 N 값 중 최소값인 컷오프 값을 결정합니다. 그런 다음 컷오프보다 크거나 같은 값을 가진 행이 결과에 포함됩니다.
개념적이지만 잠재적으로 지원되지 않는 쿼리
이론적으로 다음 쿼리도 다음 쿼리를 달성해야 합니다. 원하는 결과를 얻을 수 있지만 지원되지 않을 수도 있습니다. MySQL:
select * from t where t.value >= ANY (select value from t order by value limit N)
결론
이 문서에 설명된 방법은 MySQL에서 상위 N개의 최대값을 검색할 때 중복된 값을 처리하는 효과적인 방법을 제공합니다. 선택한 접근 방식은 쿼리의 특정 요구 사항, 즉 동점을 포함할지 또는 상위 N개 행을 엄격하게 준수할지 여부를 기반으로 해야 합니다.
위 내용은 MySQL에서 상위 N개 최대값을 검색할 때 중복된 값을 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!