Condividi tramite


Rank (MDX)

Restituisce il rango in base uno di una tupla specificata in un set specificato.

Sintassi

Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )

Argomenti

  • Tuple_Expression
    Espressione MDX (Multidimensional Expression) valida che restituisce una tupla.

  • Set_Expression
    Espressione MDX (Multidimensional Expression) valida che restituisce un set.

  • Numeric_Expression
    Espressione numerica valida che in genere è un'espressione MDX (Multidimensional Expression) di coordinate di celle che restituisce un numero.

Osservazioni

Se si specifica un'espressione numerica, la funzione Rank determina il rango in base uno della tupla specificata valutando l'espressione numerica specificata in base alla tupla. Se si specifica un'espressione numerica, la funzione Rank assegna lo stesso rango alle tuple con valori duplicati nel set. L'assegnazione dello stesso rango a valori duplicati influisce sui ranghi delle tuple successive del set. Si supponga, ad esempio, che un set sia composto dalle tuple {(a,b), (e,f), (c,d)}. In questo caso il valore della tupla (a,b) corrisponde a quello della tupla (c,d). Se il rango della tupla (a,b) è 1, a entrambe le tuple (a,b) e (c,d) è associato il rango 1, ma il rango della tupla (e,f) è 3. Questo set infatti non può contenere tuple con rango 2.

Se non viene specificata un'espressione numerica, la funzione Rank restituisce la posizione ordinale in base uno della tupla specificata.

La funzione Rank non esegue alcun ordinamento del set.

Esempio

Nell'esempio seguente viene restituito il set di tuple contenente i clienti e le date di acquisto, utilizzando le funzioni Filter, NonEmpty, Item e Rank per individuare l'ultima data in cui ogni cliente ha eseguito un acquisto.

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]

Nell'esempio seguente viene utilizzata la funzione Order, anziché la funzione Rank, per assegnare un rango ai membri della gerarchia City in base alla misura Reseller Sales Amount e visualizzarli in ordine di rango. Utilizzando la funzione Order per ordinare il set dei membri della gerarchia City, l'ordinamento viene eseguito una sola volta ed è seguito da un'analisi lineare prima di essere visualizzato in modo ordinato.

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]