TopPercent (MDX)

Seřadí množinu sestupně a vrátí množinu n-tic s nejvyššími hodnotami, jejichž součet je roven nebo větší než stanovené procento.

Syntax

  
TopPercent(Set_Expression, Percentage, Numeric_Expression)   

Arguments

Nastavit_výraz
Platný výraz Multidimensional Expressions (MDX), který vrací množinu.

procento
Platný číselný výraz, který určuje procento n-tic, které mají být vráceny.

Important

Procento musí být kladná hodnota; záporné hodnoty způsobují chybu.

Numeric_Expression
Platný číselný výraz, který je typicky výrazem Multidimenzionálních výrazů (MDX) souřadnic buňky, které vracejí číslo.

Remarks

Funkce TopPercent vypočítá součet specifikovaného číselného výrazu vyhodnoceného přes danou množinu, přičemž množinu seřadí sestupně. Funkce pak vrací prvky s nejvyššími hodnotami, jejichž kumulativní procento z celkového součtu je alespoň stanovené procento. Tato funkce vrací nejmenší podmnožinu množiny, jejíž kumulativní součet je alespoň stanovené procento. Vrácené prvky jsou seřazeny od největšího po nejmenší.

Warning

Pokud Numeric_Expression vrátí jakoukoli zápornou hodnotu, TopPercent vrátí pouze jeden (1) řádek.

Viz druhý příklad pro podrobnější prezentaci tohoto chování.

Important

Stejně jako funkce BottomPercent , i funkce TopPercent vždy narušuje hierarchii.

Examples

A. Návrat TopPercent

Následující příklad vrací nejlepší města, která pomáhají dostat se do top 10% prodejů prodejců v kategorii Kola. Výsledek je seřazen sestupně, počínaje městem s nejvyšší hodnotou prodejů.

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])  

Výše uvedený výraz dává následující výsledky:

Město Částka z prodeje přeprodejcem
Toronto $3,508,904.84
London $1,521,530.09
Seattle $1,209,418.16
Paris $1,170,425.18

Původní sadu dat lze získat následujícím dotazem a vrací 588 řádků:

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. Pochopte vliv záporných hodnot

Následující průvodce pomůže pochopit vliv záporných hodnot na Numeric_Expression. Nejprve si vybudujme kontext, kde můžeme chování prezentovat.

Následující dotaz vrací tabulku s přeprodejní částkou 'Sales Amount', 'Total Product Cost' a 'Gross Profit', seřazenou sestupně podle zisku. Upozorňujeme, že pro zisk existují pouze záporné hodnoty; Takže nejmenší ztráta se objeví nahoře.

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]  
  

Výše uvedený dotaz vrací následující výsledky; Řádky ze střední části byly odstraněny kvůli lepší čitelnosti.

Turistická kola Částka z prodeje přeprodejcem Celkové náklady na produkt u přeprodejce Hrubý zisk prodejce
Turné – 2000 Blue, 50 $157,444.56 $163,112.57 ($5,668.01)
Turné – 2000 Blue, 46 $321,027.03 $333,021.50 ($11,994.47)
Touring-3000 Blue, 62 87 773,61 $ $100,133.52 ($12,359.91)
... ... ... ...
Touring-1000 žlutá, 46 $1,016,312.83 $1,234,454.27 ($218,141.44)
Touring-1000 žlutá, 60 $1,184,363.30 $1,443,407.51 ($259,044.21)

Kdybyste měli představit 100 nejlepších% kol podle zisku, napsali byste dotaz jako:

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]  
  

Vezměte prosím na vědomí, že dotaz žádá o sto procent (100%); To znamená, že všechny řádky by měly být vráceny. Nicméně, protože v Numeric_Expression jsou záporné hodnoty, vrací se pouze jeden řádek.

Turistická kola Částka z prodeje přeprodejcem Celkové náklady na produkt u přeprodejce Hrubý zisk prodejce
Turné – 2000 Blue, 50 $157,444.56 $163,112.57 ($5,668.01)