军衔(MDX)

返回指定集合中指定元组的基于一的秩。

Syntax

  
Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )  

Arguments

Tuple_Expression
一个有效的多维表达式(MDX)表达式,返回元组。

Set_Expression
一个有效的多维表达式(MDX)表达式,返回集合。

Numeric_Expression
一个有效的数值表达式,通常是多维表达式(MDX)表达式,表示返回一个数字的单元坐标。

Remarks

如果指定了一个数值表达式, 秩 函数通过对该元组计算指定的数值表达式,确定该元组的基于一的秩。 如果指定了一个数值表达式, 秩 函数会将相同的秩分配给集合中值重复的元组。 将相同秩分配给重复值会影响集合中后续元组的秩。 例如,一个集合由以下元组组成,。 {(a,b), (e,f), (c,d)} 该元组 (a,b) 与元组 (c,d)值相同。 如果元组(a,b)的秩为1,则和(c,d)的(a,b)秩都是1。 然而,元组 (e,f) 的秩为3。 该集合中不能有秩为2的元组。

如果未指定数值表达式, 秩 函数返回指定元组的基于一的序数位置。

秩函数不对集合进行排序。

示例

以下示例通过使用 筛选、 非空、 物品和 排名 函数,返回包含客户和购买日期的元组集合,查找每位客户最后一次购买的日期。

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 函数先对城市层级成员集合排序,排序仅完成一次,随后进行线性扫描,再按排序顺序呈现。

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]