Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gibt den ein-basierten Rang eines angegebenen Tupels in einer bestimmten Menge zurück.
Syntax
Rank(Tuple_Expression, Set_Expression [ ,Numeric Expression ] )
Argumente
Tuple_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der ein Tupel zurückgibt.
Set_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der eine Menge zurückgibt.
Numeric_Expression
Ein gültiger numerischer Ausdruck, der typischerweise ein Multidimensional Expressions (MDX)-Ausdruck von Zellkoordinaten ist, die eine Zahl zurückgeben.
Bemerkungen
Wenn ein numerischer Ausdruck angegeben ist, bestimmt die Rangfunktion den ein-basierten Rang für das angegebene Tupel, indem sie den angegebenen numerischen Ausdruck gegen das Tupel auswertet. Wenn ein numerischer Ausdruck angegeben ist, weist die Rangfunktion denselben Rang Tupeln mit doppelten Werten in der Menge zu. Diese Zuweisung desselben Ranges an doppelte Werte beeinflusst die Ränge der nachfolgenden Tupel in der Menge. Zum Beispiel besteht eine Menge aus den folgenden Tupeln, {(a,b), (e,f), (c,d)}. Das Tupel (a,b) hat denselben Wert wie das Tupel (c,d). Wenn das Tupel (a,b) einen Rang von 1 hat, dann hätten sowohl als auch (c,d) einen (a,b) Rang von 1. Allerdings hätte das Tupel (e,f) einen Rang von 3. Es konnte in diesem Set kein Tupel mit Rang 2 geben.
Wenn kein numerischer Ausdruck angegeben ist, gibt die Rank-Funktion die einsbasierte Ordinalposition des angegebenen Tupels zurück.
Die Rangfunktion ordnet die Menge nicht.
Example
Das folgende Beispiel liefert die Menge der Tupel zurück, die Kunden und Kaufdaten enthalten, indem die Funktionen Filter, Nichtleer,Artikel und Rang verwendet werden, um das letzte Kaufdatum jedes Kunden zu bestimmen.
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]
Das folgende Beispiel verwendet die Order-Funktion anstelle der Rang-Funktion , um die Mitglieder der Stadthierarchie basierend auf dem Maß Reseller Sales Amount zu rangieren und dann in Rangfolge anzuzeigen. Indem die Order-Funktion verwendet wird, um die Menge der Mitglieder der Stadthierarchie zuerst zu ordnen, erfolgt die Sortierung nur einmal und anschließend ein linearer Scan, bevor sie in sortierter Reihenfolge präsentiert wird.
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]