TopPercent (MDX)TopPercent (MDX)

SI APPLICA A:sìSQL Server Analysis ServicesnoAzure Analysis ServicesAPPLIES TO:yesSQL Server Analysis ServicesnoAzure Analysis Services

Dispone un set in ordine decrescente e restituisce un set di tuple con i valori più alti il cui totale cumulativo è maggiore o uguale alla percentuale specificata.Sorts a set in descending order, and returns a set of tuples with the highest values whose cumulative total is equal to or greater than a specified percentage.

SintassiSyntax


TopPercent(Set_Expression, Percentage, Numeric_Expression)   

ArgomentiArguments

Set_ExpressionSet_Expression
Espressione MDX (Multidimensional Expression) valida che restituisce un set.A valid Multidimensional Expressions (MDX) expression that returns a set.

PercentualePercentage
Espressione numerica valida che specifica la percentuale di tuple da restituire.A valid numeric expression that specifies the percentage of tuples to be returned.

Importante

Percentuale deve essere un valore positivo; i valori negativi generano un errore.Percentage needs to be a positive value; negative values generate an error.

Numeric_expressionNumeric_Expression
Espressione numerica valida che in genere è un'espressione MDX (Multidimensional Expression) di coordinate di celle che restituisce un numero.A valid numeric expression that is typically a Multidimensional Expressions (MDX) expression of cell coordinates that return a number.

OsservazioniRemarks

Il TopPercent funzione calcola la somma dell'espressione numerica specificata valutata sul set specificato, disponendo il set in ordine decrescente.The TopPercent function calculates the sum of the specified numeric expression evaluated over the specified set, sorting the set in descending order. La funzione restituisce quindi gli elementi con i valori più alti la cui percentuale cumulativa del valore sommato totale corrisponde almeno alla percentuale specificata.The function then returns the elements with the highest values whose cumulative percentage of the total summed value is at least the specified percentage. La funzione restituisce il subset più piccolo di un set il cui totale cumulativo corrisponde almeno alla percentuale specificata.This function returns the smallest subset of a set whose cumulative total is at least the specified percentage. Gli elementi restituiti sono ordinati dal più grande al più piccolo.The returned elements are ordered largest to smallest.

Avviso

Se Numeric_Expression restituisce quindi un valore negativo TopPercent restituisce solo uno (1) riga.If Numeric_Expression returns any negative value then TopPercent returns only one (1) row.

Vedere il secondo esempio per una presentazione dettagliata di questo comportamento.See the second example for a detailed presentation of this behavior.

Importante

Ad esempio il BottomPercent funzione, il TopPercent funzione rispetta mai la gerarchia.Like the BottomPercent function, the TopPercent function always breaks the hierarchy.

EsempioExample

Nell'esempio seguente vengono restituite le migliori città che contribuiscono al primo 10% delle vendite dei rivenditori per la categoria della bicicletta.The following example returns the best cities that help make the top 10% of the resellers' sales, for the Bike category. Il risultato viene disposto in ordine decrescente a iniziare con la città con il valore massimo di vendite.The result is sorted in descending order, beginning with the city that has the highest value of sales.

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

Tramite l'espressione sopra indicata vengono prodotti i risultati seguenti:The above expression produces the following results:

Reseller Sales AmountReseller Sales Amount
TorontoToronto $3,508,904.84$3,508,904.84
LondraLondon $1,521,530.09$1,521,530.09
SeattleSeattle $1,209,418.16$1,209,418.16
ParigiParis $1,170,425.18$1,170,425.18

Il set di dati originale può essere ottenuto con la query seguente e può restituire 588 righe:The original set of data can be obtained with the following query and returns 588 rows:

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

EsempioExample

La procedura dettagliata seguente consentirà di comprendere l'effetto dei valori negativi nel Numeric_Expression.The following walkthrough will help understand the effect of negative values in the Numeric_Expression. Prima compilare un contesto in cui è possibile presentare il comportamento.First let's build some context where we can present the behavior.

Nella query seguente viene restituita una tabella di rivenditori 'Sales Amount', 'Total Product Cost' e 'Gross Profit', disposto in ordine decrescente di profitto.The following query returns a table of Resellers 'Sales Amount', 'Total Product Cost' and 'Gross Profit', sorted in descending order of profit. Per il profitto sono presenti solo valori negativi e quindi la perdita più piccola appare all'inizio.Please note there are only negative values for profit; so, the smallest loss appears at the top.

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]  

La query precedente restituisce i risultati seguenti: le righe della sezione centrale sono state rimosse per leggibilità.The above query returns the following results; rows from the middle section were removed for readability.

Reseller Sales AmountReseller Sales Amount Reseller Total Product CostReseller Total Product Cost Reseller Gross ProfitReseller Gross Profit
Touring-2000 Blue, 50Touring-2000 Blue, 50 $157,444.56$157,444.56 $163,112.57$163,112.57 ($5,668.01)($5,668.01)
Touring-2000 blu, 46Touring-2000 Blue, 46 $321,027.03$321,027.03 $333,021.50$333,021.50 ($11,994.47)($11,994.47)
Touring-3000 blu, 62Touring-3000 Blue, 62 $87,773.61$87,773.61 $100,133.52$100,133.52 ($12,359.91)($12,359.91)
Touring-1000 giallo, 46Touring-1000 Yellow, 46 $1,016,312.83$1,016,312.83 $1,234,454.27$1,234,454.27 ($218,141.44)($218,141.44)
Touring-1000 Yellow, 60Touring-1000 Yellow, 60 $1,184,363.30$1,184,363.30 $1,443,407.51$1,443,407.51 ($259,044.21)($259,044.21)

Ora, se è stato richiesto di presentare le prime biciclette al 100% in base al profitto si scriverebbe una query come quella riportata di seguito.Now, if you were asked to present the top 100% bikes by profit you would write a query like:

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]  

La query chiede il cento percento (100%), ossia tutte le righe devono essere restituite.Please note that the query asks for one hundred percent (100%); that means all rows should be returned. Tuttavia, poiché sono presenti valori negativi nel Numeric_Expression , viene restituita solo una riga.However, because there are negative values in the Numeric_Expression , only one row is returned.

Reseller Sales AmountReseller Sales Amount Reseller Total Product CostReseller Total Product Cost Reseller Gross ProfitReseller Gross Profit
Touring-2000 Blue, 50Touring-2000 Blue, 50 $157,444.56$157,444.56 $163,112.57$163,112.57 ($5,668.01)($5,668.01)

Vedere ancheSee Also

Riferimento alla funzione MDX ( MDX )MDX Function Reference (MDX)