대규모 데이터세트에서 최대값 및 관련 데이터 추출
대규모 데이터세트를 작업하려면 한 열에서 최대값을 추출하는 동시에 다른 열에서 해당 값을 검색하는 효율적인 방법이 필요한 경우가 많습니다. 중첩된 SELECT 문이나 GROUP BY
이 포함된 간단한 MAX()
과 같은 표준 기술은 수백만 개의 행을 처리할 때 비효율적입니다.
우수한 솔루션은 ROW_NUMBER()
창 기능을 활용합니다. 이 함수는 파티션 내에서 행의 순위를 매기므로 특정 열에서 최대값이 있는 행을 식별할 수 있습니다. 여러 열이 있는 테이블을 생각해 보세요. 다음 쿼리는 각 ID 및 해당 태그의 최대 버전을 효율적으로 검색합니다.
SELECT id, tag, version FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY id ORDER BY version DESC) as rn FROM YourTable ) ranked_data WHERE rn = 1;
이 쿼리는 id
열을 기준으로 데이터를 분할하고, 각 파티션을 version
기준으로 내림차순으로 정렬하고, 파티션 내의 각 행에 순위(rn
)를 할당합니다. 그런 다음 외부 쿼리는 순위 1의 행만 선택하여 각 version
및 관련 id
에 대한 최대 tag
를 효과적으로 반환합니다. 이 접근 방식은 중첩 쿼리의 성능 병목 현상을 방지하고 대규모 데이터 세트에 대해 훨씬 더 빠른 솔루션을 제공합니다.
위 내용은 대규모 데이터 세트에서 최대값과 해당 열을 효율적으로 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!