다음을 통해 공유


Rank(MDX)

지정한 집합에서 1부터 시작하는 지정된 튜플의 순위를 반환합니다.

구문

Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )

인수

  • Tuple_Expression
    튜플을 반환하는 유효한 MDX 식입니다.

  • Set_Expression
    집합을 반환하는 유효한 MDX 식입니다.

  • Numeric_Expression
    숫자를 반환하는 셀 좌표의 유효한 숫자 식으로서, 일반적으로 MDX 식입니다.

주의

숫자 식이 지정된 경우 Rank 함수는 지정된 튜플에 대해 지정된 숫자 식을 계산하여 해당 튜플의 순위(1부터 시작)를 결정합니다. 숫자 식이 지정된 경우 Rank 함수는 해당 집합에서 중복 값을 갖는 튜플에 같은 순위를 할당합니다. 중복 값에 이렇게 같은 순위를 할당하면 집합의 이후 튜플 순위에 영향을 줍니다. 예를 들어 {(a,b), (e,f), (c,d)}와 같은 튜플로 구성된 집합을 고려해 보십시오. 튜플 (a,b)는 튜플 (c,d)와 값이 동일합니다. (a,b) 튜플의 순위가 1일 경우 (a,b) 및 (c,d)의 순위가 1이 됩니다. 하지만 (e,f) 튜플의 순위는 3이 됩니다. 이 집합에서 순위가 2인 튜플은 없을 수 있습니다.

숫자 식이 지정되지 않은 경우 Rank 함수는 지정된 튜플의 순서 위치(1부터 시작)를 반환합니다.

Rank 함수는 집합에서 순서를 지정하지 않습니다.

다음 예에서는 Filter, NonEmpty, Item 및 Rank 함수를 사용하여 각 고객이 제품을 구입한 마지막 날짜를 찾고 고객과 구입 날짜가 들어 있는 튜플 집합을 반환합니다.

WITH SET MYROWS AS FILTER
   (NONEMPTY
      ([Customer].[Customer Geography].MEMBERS
         * [Date].[Date].[Date].MEMBERS
         , [Measures].[Internet Sales Amount]
      ) AS MYSET
   , NOT(MYSET.CURRENT.ITEM(0)
      IS MYSET.ITEM(RANK(MYSET.CURRENT, MYSET)).ITEM(0))
   )
SELECT [Measures].[Internet Sales Amount] ON 0,
MYROWS ON 1
FROM [Adventure Works]

다음 예에서는 Rank 함수 대신 Order 함수를 사용하여 Reseller Sales Amount 측정값에 따라 City 계층의 멤버 순위를 지정하고 해당 멤버를 순위에 따라 표시합니다. Order 함수를 사용하여 먼저 City 계층의 멤버 집합을 정렬하면 정렬이 한 번만 수행된 다음 정렬된 결과가 표시되기 전에 선형 검색이 수행됩니다.

WITH 
SET OrderedCities AS Order
   ([Geography].[City].[City].members
   , [Measures].[Reseller Sales Amount], BDESC
   )
MEMBER [Measures].[City Rank] AS Rank
   ([Geography].[City].CurrentMember, OrderedCities)
SELECT {[Measures].[City Rank],[Measures].[Reseller Sales Amount]}  ON 0 
,Order
   ([Geography].[City].[City].MEMBERS
   ,[City Rank], ASC)
    ON 1
FROM [Adventure Works]

참고 항목

참조