Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Sorterar en mängd i fallande ordning och returnerar en mängd tupler med de högsta värdena vars kumulativa totala är lika med eller större än en specificerad procentandel.
Syntax
TopPercent(Set_Expression, Percentage, Numeric_Expression)
Arguments
Set_Expression
Ett giltigt Multidimensional Expressions (MDX)-uttryck som returnerar en mängd.
Procent
Ett giltigt numeriskt uttryck som anger procentandelen tupler som ska returneras.
Important
Procentsatsen måste vara ett positivt värde; Negativa värden genererar ett fel.
Numeric_Expression
Ett giltigt numeriskt uttryck som vanligtvis är ett Multidimensional Expressions (MDX)-uttryck av cellkoordinater som returnerar ett tal.
Remarks
TopPercent-funktionen beräknar summan av det specificerade numeriska uttrycket utvärderat över den angivna mängden och sorterar mängden i fallande ordning. Funktionen returnerar sedan elementen med de högsta värdena vars kumulativa procentandel av det totala summade värdet är minst den specificerade procentandelen. Denna funktion returnerar den minsta delmängden av en mängd vars kumulativa totala är minst den angivna procentandelen. De returnerade elementen är ordnade från störst till minst.
Varning
Om Numeric_Expression returnerar något negativt värde returnerar TopPercent endast en (1) rad.
Se det andra exemplet för en detaljerad presentation av detta beteende.
Important
Precis som BottomPercent-funktionen bryter TopPercent-funktionen alltid hierarkin.
Examples
A. Returnera TopPercent
Följande exempel visar de bästa städerna som hjälper till att hamna bland de tio bästa% av återförsäljarnas försäljning, för cykelkategorin. Resultatet sorteras i fallande ordning, med början i den stad som har högst försäljningsvärde.
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])
Ovanstående uttryck ger följande resultat:
| Ort | Återförsäljares Försäljningsbelopp |
|---|---|
| Toronto | 3 508 904,84 dollar |
| London | 1 521 530,09 dollar |
| Seattle | $1 209 418,16 |
| Paris | 1 170 425,18 dollar |
Den ursprungliga datamängden kan erhållas med följande fråga och returnerar 588 rader:
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. Förstå effekten av negativa värden
Följande genomgång hjälper till att förstå effekten av negativa värden i Numeric_Expression. Först ska vi bygga lite kontext där vi kan presentera beteendet.
Följande fråga ger en tabell över återförsäljarnas 'Försäljningsbelopp', 'Total produktkostnad' och 'Bruttovinst', sorterat i fallande ordning efter vinst. Observera att det bara finns negativa värden för vinst; Så den minsta förlusten syns högst upp.
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]
Ovanstående fråga ger följande resultat; rader från mittsektionen togs bort för läsbarhet.
| Touringcyklar | Återförsäljares Försäljningsbelopp | Återförsäljarens totala produktkostnad | Återförsäljarens bruttovinst |
|---|---|---|---|
| Touring-2000 Blå, 50 | 157 444,56 dollar | 163 112,57 dollar | ($5 668,01) |
| Touring-2000 Blue, 46 | 321 027,03 dollar | 333 021,50 dollar | ($11 994,47) |
| Touring-3000 Blå, 62 | $87 773,61 | 100 133,52 dollar | ($12 359,91) |
| ... | ... | ... | ... |
| Touring-1000 Gul, 46 | 1 016 312,83 dollar | 1 234 454,27 dollar | (218 141,44 dollar) |
| Touring-1000 Gul, 60 | 1 184 363,30 dollar | 1 443 407,51 dollar | (259 044,21 dollar) |
Om du nu skulle presentera de 100 bästa% cyklarna efter vinst skulle du skriva en fråga så här:
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]
Observera att sökningen kräver hundra procent (100%); Det betyder att alla rader ska returneras. Men eftersom det finns negativa värden i Numeric_Expression , returneras endast en rad.
| Touringcyklar | Återförsäljares Försäljningsbelopp | Återförsäljarens totala produktkostnad | Återförsäljarens bruttovinst |
|---|---|---|---|
| Touring-2000 Blå, 50 | 157 444,56 dollar | 163 112,57 dollar | ($5 668,01) |