Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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) |