分享方式:


排名 (MDX)

傳回指定集合中指定 Tuple 的一個型順位。

語法

  
Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )  

引數

Tuple_Expression
傳回 Tuple 的有效多維度運算式 (MDX) 運算式。

Set_Expression
傳回集合的有效多維度運算式 (MDX) 運算式。

Numeric_Expression
有效的數值運算式,通常是傳回數位之儲存格座標的多維度運算式 (MDX) 運算式。

備註

如果指定了數值運算式, Rank 函式會根據 Tuple 評估指定的數值運算式,以判斷指定元組的單一式排名。 如果指定了數值運算式, Rank 函式會將相同的排名指派給集合中具有重複值的 Tuple。 將相同排名指派給重複值會影響集合中後續 Tuple 的排名。 例如,集合是由下列 Tuple {(a,b), (e,f), (c,d)} 所組成。 Tuple (a,b) 的值與 Tuple (c,d) 相同。 如果 Tuple (a,b) 的排名為 1,則 (a,b)(c,d) 的排名都會是 1。 不過,Tuple (e,f) 的排名會是 3。 此集合中沒有任何 Tuple 的排名為 2。

如果未指定數值運算式, Rank 函式會傳回指定元組的單一序數位置。

Rank 式不會排序集合。

範例

下列範例會使用 Filter NonEmpty Item Rank 函式,傳回包含客戶和購買日期的 Tuple 集合,以尋找每位客戶購買的最後一個日期。

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]  

下列範例會使用 Order 函式,而不是 Rank 函式,根據 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]  

另請參閱

訂單 (MDX)
MDX 函數參考 (MDX)