Rank (MDX)

Retourne le rang de base un d'un tuple dans un jeu.

Syntaxe

Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )

Arguments

  • Tuple_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un tuple.

  • Set_Expression
    Expression MDX (Multidimensional Expressions) valide qui retourne un jeu.

  • Numeric_Expression
    Expression numérique valide qui correspond généralement à une expression MDX (Multidimensional Expressions) des coordonnées des cellules qui retournent un nombre.

Notes

Si une expression numérique est spécifiée, la fonction Rank détermine le rang de base un du tuple spécifié en évaluant l'expression numérique spécifiée par rapport au tuple. Si une expression numérique est spécifiée, la fonction Rank attribue le même rang aux tuples dotés de valeurs dupliquées dans le jeu. L'attribution du même rang aux doublons affecte le rang des tuples suivants dans le jeu. Soit par exemple un jeu constitué des tuples suivants, {(a,b), (e,f), (c,d)} : le tuple (a,b) a la même valeur que le tuple (c,d). Si le tuple (a,b) a le rang 1, alors (a,b) et (c,d) ont tous deux le rang 1. Toutefois, le tuple (e,f) aura le rang 3 et ce jeu ne contiendra aucun tuple de rang 2.

Si aucune expression numérique n'est spécifiée, la fonction Rank retourne la position ordinale de base un du tuple spécifié.

La fonction Rank ne trie pas le jeu.

Exemple

L'exemple ci-dessous retourne l'ensemble des tuples contenant les clients et les dates d'achat par le biais des fonctions Filter, NonEmpty, Item et Rank afin de rechercher la dernière date à laquelle chaque client a effectué un achat.

WITH SET MYROWS AS FILTER
   (NONEMPTY
      ([Customer].[Customer Geography].[Customer].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]

L'exemple ci-dessous fait appel à la fonction Order plutôt qu'à la fonction Rank pour classer par rang les membres de la hiérarchie City en se basant sur la mesure Reseller Sales Amount (volume de vente du revendeur), puis les affiche dans l'ordre de classement. Après le classement préalable du jeu de membres de la hiérarchie City à l'aide de la fonction Order, le tri n'a lieu qu'une seule fois et est suivi d'une analyse linéaire avant la présentation des éléments par ordre de tri.

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]