SQL의 여러 범주에서 상위 N개 레코드 검색
이 SQL 기법은 단일 테이블 내의 다양한 범주에서 상위 N개 레코드(예: 상위 10개)를 효율적으로 검색합니다.
<code class="language-sql">SELECT rs.Field1, rs.Field2 FROM ( SELECT Field1, Field2, RANK() OVER (PARTITION BY Section ORDER BY RankCriteria DESC) AS Rank FROM table ) rs WHERE Rank <= 10;</code>
설명:
Field1
및 Field2
: 검색하려는 열을 나타냅니다.SELECT
문은 RANK()
창 함수를 사용합니다. PARTITION BY Section
은 '섹션' 카테고리를 기준으로 데이터를 그룹으로 나눕니다. ORDER BY RankCriteria DESC
순위 기준에 따라 각 섹션 내 기록을 내림차순으로 정렬합니다. Rank
섹션 내의 각 레코드에 순위를 할당합니다.SELECT
문은 결과를 필터링하여 Rank
값이 10 이하(Rank <= 10
)인 레코드만 유지합니다.이 방법은 효율적이며 전용 행 제한 기능이 부족한 데이터베이스 시스템에서도 작동합니다. 성능이 중요한 경우에 적합합니다.
위 내용은 SQL의 여러 범주에 걸쳐 상위 N개 레코드를 효율적으로 쿼리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!