집 >데이터 베이스 >MySQL 튜토리얼 >SQL Server 2005를 사용하여 범주별 상위 10개 레코드를 검색하는 방법은 무엇입니까?
SQL Server 2005에서 범주별 상위 10개 레코드 추출
이 가이드에서는 단일 SQL Server 2005 쿼리를 사용하여 각 범주의 상위 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>
이 쿼리는 RANK()
(순위 순서를 정의하는 열)을 기준으로 해당 범주 내의 각 레코드에 순위를 할당하는 RankCriteria
함수를 사용합니다. PARTITION BY Section
절은 각 카테고리 내에서 독립적인 순위를 보장합니다. RANK()
가장 높은 순위의 레코드에 대해 1부터 시작하여 순차적인 순위를 할당합니다.
WHERE Rank <= 10
절은 결과를 필터링하여 각 범주의 상위 10개 레코드로 출력을 제한합니다. RankCriteria
에 동점이 존재하는 경우 카테고리에 대해 10개 이상의 레코드가 반환될 수 있다는 점을 기억하는 것이 중요합니다.
위 내용은 SQL Server 2005를 사용하여 범주별 상위 10개 레코드를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!