TopPercent (MDX)

Sortiert eine Menge in absteigender Reihenfolge und liefert eine Menge von Tupeln mit den höchsten Werten, deren kumulative Gesamtsumme gleich oder größer als ein bestimmter Prozentsatz ist.

Syntax

  
TopPercent(Set_Expression, Percentage, Numeric_Expression)   

Argumente

Set_Expression
Ein gültiger Multidimensional Expressions (MDX)-Ausdruck, der eine Menge zurückgibt.

Prozentsatz
Ein gültiger numerischer Ausdruck, der den Prozentsatz der zurückzugebenden Tupel angibt.

Important

Der Prozentsatz muss ein positiver Wert sein; Negative Werte erzeugen einen Fehler.

Numeric_Expression
Ein gültiger numerischer Ausdruck, der typischerweise ein Multidimensional Expressions (MDX)-Ausdruck von Zellkoordinaten ist, die eine Zahl zurückgeben.

Bemerkungen

Die TopPercent-Funktion berechnet die Summe des angegebenen numerischen Ausdrucks, der über die angegebene Menge ausgewertet wird, und sortiert die Menge in absteigender Reihenfolge. Die Funktion gibt dann die Elemente mit den höchsten Werten zurück, deren kumulativer Prozentsatz des gesamten summierten Werts mindestens der angegebene Prozentsatz ist. Diese Funktion gibt die kleinste Teilmenge einer Menge zurück, deren kumulative Gesamtsumme mindestens den angegebenen Prozentsatz beträgt. Die zurückgegebenen Elemente sind von den größten bis den kleinsten geordnet.

Warning

Wenn Numeric_Expression einen negativen Wert zurückgibt, gibt TopPercent nur eine (1) Zeile zurück.

Siehe das zweite Beispiel für eine detaillierte Darstellung dieses Verhaltens.

Important

Wie die BottomPercent-Funktion bricht die TopPercent-Funktion immer die Hierarchie.

Beispiele

A. Rendite TopPercent

Das folgende Beispiel zeigt die besten Städte auf, die dazu beitragen, in die Top 10% der Wiederverkäufer-Verkäufe in der Motorradkategorie zu kommen. Das Ergebnis wird in absteigender Reihenfolge sortiert, beginnend mit der Stadt mit dem höchsten Verkaufswert.

SELECT [Measures].[Reseller Sales Amount] ON 0,  
TopPercent  
   ({[Geography].[Geography].[City].Members}  
   , 10  
   , [Measures].[Reseller Sales Amount]  
   ) ON 1  
FROM [Adventure Works]  
WHERE([Product].[Product Categories].[Bikes])  

Der obige Ausdruck liefert folgende Ergebnisse:

Stadt Umsatzbetrag des Wiederverkäufers
Toronto 3.508.904,84 $
London 1.521.530,09 $
Seattle 1.209.418,16 $
Paris 1.170.425,18 $

Der ursprüngliche Datensatz kann mit folgender Abfrage erhalten werden und liefert 588 Zeilen:

SELECT [Measures].[Reseller Sales Amount] ON 0,  
Order  
   ({[Geography].[Geography].[City].Members}  
   , [Measures].[Reseller Sales Amount]  
   , BDESC  
   ) ON 1  
FROM [Adventure Works]  
WHERE([Product].[Product Categories].[Bikes])  
  

B. Verstehen Sie die Wirkung negativer Werte

Der folgende Walkthrough hilft dabei, die Auswirkungen negativer Werte auf die Numeric_Expression zu verstehen. Zuerst schaffen wir einen Kontext, in dem wir das Verhalten präsentieren können.

Die folgende Abfrage liefert eine Tabelle mit Wiederverkäufern: 'Umsatzbetrag', 'Gesamtproduktkosten' und 'Bruttogewinn', sortiert in absteigender Reihenfolge nach Gewinn. Bitte beachten Sie, dass es nur negative Werte für den Gewinn gibt; Der kleinste Verlust erscheint also oben.

SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns  
     ,  ORDER( [Product].[Product Categories].[Bikes].[Touring Bikes].children, [Measures].[Reseller Gross Profit], BDESC )   ON rows  
FROM [Adventure Works]  
  

Die obige Abfrage liefert folgende Ergebnisse; Reihen aus dem mittleren Abschnitt wurden zur besseren Lesbarkeit entfernt.

Tourenräder Umsatzbetrag des Wiederverkäufers Gesamtproduktkosten für Wiederverkäufer Wiederverkäufer-Bruttogewinn
Touring-2000 Blau, 50 157.444,56 $ 163.112,57 $ (5.668,01 $)
Touring-2000 Blue, 46 321.027,03 $ 333.021,50 $ ($11.994,47)
Touren-3000 Blau, 62 87.773,61 $ 100.133,52 $ (12.359,91 $)
... ... ... ...
Touring-1000 Gelb, 46 1.016.312,83 $ 1.234.454,27 $ (218.141,44 $)
Touring-1000 Gelb, 60 1.184.363,30 $ 1.443.407,51 $ (259.044,21 $)

Wenn Sie nun gebeten würden, die Top 100% Fahrräder nach Gewinn zu präsentieren, würden Sie eine Anfrage wie folgt schreiben:

SELECT { [Measures].[Reseller Sales Amount], [Measures].[Reseller Total Product Cost], [Measures].[Reseller Gross Profit] } ON columns  
     ,  TOPPERCENT( [Product].[Product Categories].[Bikes].[Touring Bikes].children, 100,[Measures].[Reseller Gross Profit] )   ON rows  
FROM [Adventure Works]  
  

Bitte beachten Sie, dass die Anfrage nach hundert Prozent (100%verlangt); Das bedeutet, alle Reihen sollten zurückgegeben werden. Da es jedoch negative Werte im Numeric_Expression gibt, wird nur eine Zeile zurückgegeben.

Tourenräder Umsatzbetrag des Wiederverkäufers Gesamtproduktkosten für Wiederverkäufer Wiederverkäufer-Bruttogewinn
Touring-2000 Blau, 50 157.444,56 $ 163.112,57 $ (5.668,01 $)