수색…


통사론

  • DENSE_RANK () OVER ([<partition_by_clause>] <order_by_clause>)
  • RANK () OVER ([partition_by_clause] order_by_clause)

매개 변수

인수 세부
<partition_by_clause> FROM 절에 의해 생성 된 결과 집합을 DENSE_RANK 함수가 적용된 분할로 나눕니다. PARTITION BY 구문은 OVER 절 (Transact-SQL)을 참조하십시오.
<order_by_clause> DENSE_RANK 함수가 파티션의 행에 적용되는 순서를 결정합니다.
OVER ( [ partition_by_clause ] order_by_clause) partition_by_clauseFROM 절에 의해 생성 된 결과 집합을 함수가 적용되는 partition_by_clause 으로 나눕니다. 지정하지 않으면 함수는 조회 결과 세트의 모든 행을 단일 그룹으로 취급합니다. order_by_clause는 함수가 적용되기 전에 데이터의 순서를 결정합니다. order_by_clause가 필요합니다. OVER 절의 <rows or range clause>RANK 함수에 대해 지정 될 수 없습니다. 자세한 내용은 OVER 절 (Transact-SQL)을 참조하십시오.

비고

두 개 이상의 행이 동일한 파티션의 순위에 대해 연결되면 각 묶인 행은 동일한 순위를받습니다. 예를 들어, 두 명의 최고 영업 사원이 동일한 SalesYTD 값을 갖고 있으면 둘 다 하나의 순위가 매겨집니다. 그 다음으로 높은 SalesYTD를 가진 영업 사원은 2 위입니다. 이것은이 행 앞에 오는 별개의 행 수보다 하나 많은 것입니다. 따라서 DENSE_RANK 함수에 의해 반환 된 숫자는 간격이없고 항상 연속적인 순위를가집니다.

전체 쿼리에 사용되는 정렬 순서에 따라 행이 결과에 나타나는 순서가 결정됩니다. 이는 1 위를 차지한 행이 파티션의 첫 번째 행 일 필요는 없음을 의미합니다.

DENSE_RANK 는 비 결정적입니다. 자세한 내용은 결정 성 및 비 결정적 함수를 참조 하십시오 .

계급()

A RANK () 분할 된 열의 결과 집합에있는 각 행의 순위를 반환합니다.

예 :

Select Studentid,Name,Subject,Marks,
RANK() over(partition by name order by Marks desc)Rank
From Exam
order by name,subject

   Studentid    Name    Subject    Marks    Rank

    101         Ivan    Maths       70       2
    101         Ivan    Science     80       1
    101         Ivan    Social      60       3
    102         Ryan    Maths       60       2
    102         Ryan    Science     50       3
    102         Ryan    Social      70       1
    103         Tanvi   Maths       90       1
    103         Tanvi   Science     90       1
    103         Tanvi   Social      80       3

DENSE_RANK ()

RANK ()와 동일합니다. 간격없이 순위를 반환합니다.

Select  Studentid, Name,Subject,Marks,
DENSE_RANK() over(partition by name order by Marks desc)Rank
From Exam
order by name

Studentid    Name    Subject    Marks    Rank
101          Ivan    Science    80       1
101          Ivan    Maths      70       2
101          Ivan    Social     60       3
102          Ryan    Social     70       1
102          Ryan    Maths      60       2
102          Ryan    Science    50       3
103          Tanvi   Maths      90       1
103          Tanvi   Science    90       1
103          Tanvi   Social     80       2


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow