Compartilhar via


Rank (MDX)

Retorna a classificação com base em uma classificação de uma tupla especificada em um determinado conjunto.

Sintaxe

Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )

Argumentos

  • Tuple_Expression
    Uma expressão MDX (Multidimensional Expressions) válida que retorna uma tupla.

  • Set_Expression
    Uma expressão MDX (Multidimensional Expressions) válida que retorna um conjunto.

  • Numeric_Expression
    Uma expressão numérica válida, geralmente uma linguagem MDX de coordenadas de célula, que retorna um número.

Comentários

Se uma expressão numérica for especificada, a função Rank determinará a classificação baseada em 1 (um) para a tupla especificada, avaliando a expressão numérica especificada em relação à tupla. Se uma expressão numérica for especificada, a função Rank atribuirá a mesma classificação a tuplas com valores duplicados no conjunto. Essa atribuição da mesma classificação para valores duplicados afeta as classificações de tuplas subsequentes no conjunto. Por exemplo, um conjunto é formado pelas seguintes tuplas, {(a,b), (e,f), (c,d)}. A tupla (a,b) tem o mesmo valor que a tupla (c,d). Se a tupla (a,b) tiver uma classificação 1, então tanto (a,b) quanto (c,d) terão uma classificação 1. No entanto, a tupla (e,f) teria uma classificação 3. Não poderia haver uma tupla com classificação 2 nesse conjunto.

Se uma expressão numérica não for especificada, a função Rank retornará a posição ordinal com base em 1 (um) da tupla especificada.

A função Rank não ordena o conjunto.

Exemplo

O exemplo a seguir retorna o conjunto de tuplas contendo clientes e datas de compra, usando as funções Filter, NonEmpty, Item e Rank para localizar a data da última compra feita pelo cliente.

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]

O exemplo a seguir usa a função Order, e não a função Rank, para classificar os membros da hierarquia Cidade com base na medida Valor das Vendas do Revendedor e então os exibe em ordem de classificação. Usando a função Order para organizar pela primeira vez o conjunto de membros da hierarquia Cidade, a classificação é feita somente uma vez, seguida de uma verificação linear, antes de ser apresentada na ordem de classificação.

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]

Consulte também

Referência