다음을 통해 공유


RANK

적용 대상:계산 열계산 테이블측정값시각적 계산

지정된 순서에 따라 정렬된 지정된 파티션 내의 현재 컨텍스트에 대한 순위를 반환합니다. 일치 항목을 찾을 수 없으면 순위가 비어 있습니다.

통사론

RANK ( [<ties>][, <relation> or <axis>][, <orderBy>][, <blanks>][, <partitionBy>][, <matchBy>][, <reset>] )

매개 변수

학기 정의
ties (선택 사항) 둘 이상의 행이 연결된 경우 순위를 처리하는 방법을 정의합니다.
지정된 경우 지원되는 값은 DENSE 또는 SKIP입니다.
생략된 경우:
- 기본값은 SKIP입니다.
relation (선택 사항) 출력 행이 반환되는 테이블 식입니다.
지정한 경우 orderBypartitionBy 모든 열이 해당 열에서 나와야 합니다.
생략된 경우:
- orderBy 명시적으로 지정해야 합니다.
- 모든 orderBypartitionBy 열은 정규화되어야 하며 단일 테이블에서 제공됩니다.
- orderBypartitionBy모든 열의 ALLSELECTED()로 기본 설정됩니다.
axis (선택 사항) 시각적 셰이프의 축입니다. 시각적 계산에서만 사용할 수 있으며 relation대체합니다.
orderBy (선택 사항) 각 파티션이 정렬되는 방식을 정의하는 열을 포함하는 ORDERBY() 절입니다.
생략된 경우:
- relation 명시적으로 지정해야 합니다.
- partitionBy아직 지정되지 않은 relation 모든 열의 순서 지정이 기본값입니다.
blanks (선택 사항) relation 정렬하거나 axis때 빈 값을 처리하는 방법을 정의하는 열거형입니다.
지원되는 값은 다음과 같습니다.
  • DEFAULT(기본값)입니다. 여기서 숫자 값의 동작은 빈 값이며 0과 음수 값 사이에 정렬됩니다. 문자열에 대한 동작은 빈 문자열을 포함하여 모든 문자열 앞에 빈 값이 정렬됩니다.
  • FIRST오름차순 또는 내림차순 정렬 순서에 관계없이 공백은 항상 시작 부분에 정렬됩니다.
  • LAST공백은 오름차순 또는 내림차순 정렬 순서에 관계없이 항상 끝에 정렬됩니다.

개별 식에 대한 ORDERBY() 함수의 blanks 매개 변수와 공백이 모두 지정된 경우 개별 orderBy 식의 blanks 관련 orderBy 식에 우선 순위를 두고 blanks 지정하지 않은 orderBy 식은 부모 함수의 blanks 매개 변수를 적용합니다.
partitionBy (선택 사항) relation 분할 방법을 정의하는 열을 포함하는 PARTITIONBY() 절입니다. 생략하면 relation 단일 파티션으로 처리됩니다.
matchBy (선택 사항) 데이터를 일치시키고 현재 행을 식별하는 방법을 정의하는 열을 포함하는 MATCHBY() 절입니다.
reset (선택 사항) 시각적 계산에서만 사용할 수 있습니다. 계산이 다시 설정되는지, 시각적 셰이프의 열 계층 구조 수준을 나타내는지 나타냅니다. 허용되는 값은 현재 시각적 셰이프의 열에 대한 필드 참조, NONE(기본값), LOWESTPARENT, HIGHESTPARENT또는 정수입니다. 동작은 정수 기호에 따라 달라집니다.
- 0이거나 생략하면 계산이 다시 설정되지 않습니다. NONE동일합니다.
- 양의 경우 정수는 곡물과 관계없이 가장 높은 열부터 시작하는 열을 식별합니다. HIGHESTPARENT 1과 같습니다.
- 음수이면 정수는 현재 곡물을 기준으로 가장 낮은 열부터 시작하는 열을 식별합니다. LOWESTPARENT -1과 같습니다.

반환 값

현재 컨텍스트의 순위 번호입니다.

발언

  • orderBy, partitionBymatchBy 열에는 다음 동작을 사용하여 작동할 현재 행을 정의하는 데 도움이 되는 해당 외부 값이 있어야 합니다.

    • 정확히 하나의 해당 외부 열이 있는 경우 해당 값이 사용됩니다.
    • 해당 외부 열이 없으면 다음을 수행합니다.
      • RANK 먼저 해당 외부 열이 없는 모든 orderBy, partitionBymatchBy 열을 결정합니다.
      • RANK 부모 컨텍스트에서 이러한 열에 대한 기존 값의 모든 조합에 대해 RANK 평가되고 행이 반환됩니다.
      • RANK최종 출력은 순위 번호입니다.
  • matchBy 있는 경우 RANKmatchBy 열을 사용하고 현재 행을 partitionBy 합니다.

  • orderBypartitionBy 내에 지정된 열이 relation모든 행을 고유하게 식별할 수 없는 경우 두 개 이상의 행의 순위가 같을 수 있으며 순위는 ties 매개 변수에 의해 결정됩니다.

  • RANK 총 행에 대해 빈 값을 반환합니다. 식을 철저히 테스트하는 것이 좋습니다.

  • RANK SUM SUMX비교하기 때문에 RANKX 비교하지 않습니다.

  • reset 시각적 계산에만 사용할 수 있으며 orderBy 또는 partitionBy함께 사용할 수 없습니다. reset 있는 경우 axis 지정할 수 있지만 relation 수 없습니다.

예제 1 - 계산 열

다음 DAX 쿼리는 다음과 같습니다.

EVALUATE
ADDCOLUMNS(
    'DimGeography',
    "Rank",
    RANK(
    	DENSE,
    	'DimGeography',
    	ORDERBY(
    		'DimGeography'[StateProvinceName], desc,
    		'DimGeography'[City], asc),
        LAST,
    	PARTITIONBY(
    		'DimGeography'[EnglishCountryRegionName])))
ORDER BY [EnglishCountryRegionName] asc, [StateProvinceName] desc, [City] asc

StateProvinceName 및 City에서 동일한 EnglishCountryRegionName을 사용하여 각 지리의 순위를 지정하는 테이블을 반환합니다. 빈 orderBy 열 값이 끝에 정렬됩니다.

예제 2 - 시각적 계산

쿼리를 DAX 시각적 계산은 다음과 같습니다.

SalesRankWithinYear = RANK(DENSE, ORDERBY([SalesAmount], DESC), PARTITIONBY([CalendarYear]))

SalesRankAllHistory = RANK(DENSE, ORDERBY([SalesAmount], DESC))

각 연도 내의 총 판매액과 전체 기록을 기준으로 매월 순위를 매기는 두 개의 열을 만듭니다.

아래 스크린샷은 시각적 행렬과 첫 번째 시각적 계산 식을 보여줍니다.

시각적 계산

INDEX ORDERBY PARTITIONBY WINDOW ROWNUMBER