Share via


RANK

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

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

구문

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

매개 변수

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

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

반환 값

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

설명

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

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

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

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

  • SUM이 SUMX와 비교하여 RANKX와 비교되지 않습니다.

  • <초기화>는 시각적 계산에서만 사용할 수 있으며 orderBy 또는 <partitionBy>>와 함께 <사용할 수 없습니다. <다시 설정>이 있으면 축>을 <지정할 수 있지만 <관계형>은 지정할 수 없습니다.

예제 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))

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

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

DAX 시각적 계산

INDEX
Orderby
PARTITIONBY
WINDOW
ROWNUMBER