返回指定集合中指定元组的基于一的秩。
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]