TopPercent (MDX)

Ordina un insieme in ordine decrescente e restituisce un insieme di tuple con i valori più alti il cui totale cumulativo è uguale o superiore a una percentuale specificata.

Sintassi

  
TopPercent(Set_Expression, Percentage, Numeric_Expression)   

Arguments

Espressione_insieme
Un'espressione valida di Espressioni Multidimensionali (MDX) che restituisce un insieme.

Percentuale
Un'espressione numerica valida che specifica la percentuale di tuple da restituire.

Importante

La percentuale deve essere un valore positivo; valori negativi generano un errore.

Numeric_Expression
Un'espressione numerica valida che tipicamente è un'espressione di Espressioni Multidimensionali (MDX) di coordinate della cella che restituiscono un numero.

Osservazioni:

La funzione TopPercent calcola la somma dell'espressione numerica specificata valutata sull'insieme specificato, ordinando l'insieme in ordine decrescente. La funzione restituisce quindi gli elementi con i valori più alti la cui percentuale cumulativa del valore totale sommato è almeno la percentuale specificata. Questa funzione restituisce il sottoinsieme più piccolo di un insieme il cui totale cumulativo è almeno la percentuale specificata. Gli elementi restituiti sono ordinati da più grande a più piccolo.

Warning

Se Numeric_Expression restituisce un valore negativo, TopPercent restituisce solo una (1) riga.

Vedi il secondo esempio per una presentazione dettagliata di questo comportamento.

Importante

Come la funzione BottomPercent , la funzione TopPercentuale rompe sempre la gerarchia.

Examples

A. Ritorno Percentuale

Il seguente esempio riporta le migliori città che contribuiscono a entrare nella top 10% delle vendite dei rivenditori, per la categoria Bici. Il risultato viene ordinato in ordine decrescente, iniziando dalla città che ha il valore di vendita più alto.

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

L'espressione sopra produce i seguenti risultati:

Città Importo Vendite Rivenditore
Toronto $3.508.904,84
London $1.521.530,09
Seattle $1.209.418,16
Paris $1.170.425,18

L'insieme originale di dati può essere ottenuto con la seguente query e restituisce 588 righe:

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. Comprendere l'effetto dei valori negativi

La seguente guida aiuterà a comprendere l'effetto dei valori negativi nel Numeric_Expression. Prima costruiamo un contesto in cui possiamo presentare il comportamento.

La seguente query restituisce una tabella dei rivenditori 'Importo Vendita', 'Costo Totale del Prodotto' e 'Profitto Lordo', ordinati in ordine decrescente di profitto. Si prega di notare che ci sono solo valori negativi per il profitto; Quindi, la perdita minima appare in cima.

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 sopra restituisce i seguenti risultati; le righe della sezione centrale sono state rimosse per facilità di leggibilità.

Biciclette da turismo Importo Vendite Rivenditore Rivenditore Costo Totale del Prodotto Profitto lordo del rivenditore
Touring-2000 Blue, 50 $157.444,56 $163.112,57 ($5.668,01)
Touring-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 Giallo, 46 $1.016.312,83 $1.234.454,27 ($218.141,44)
Touring-1000 Giallo, 60 $1.184.363,30 $1.443.407,51 ($259.044,21)

Ora, se ti chiedessero di presentare le 100 migliori% biciclette per profitto, scriveresti una query come:

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]  
  

Si noti che la query chiede il cento per cento (100%); Questo significa che tutte le righe dovrebbero essere restituite. Tuttavia, poiché ci sono valori negativi nel Numeric_Expression , viene restituita una sola riga.

Biciclette da turismo Importo Vendite Rivenditore Rivenditore Costo Totale del Prodotto Profitto lordo del rivenditore
Touring-2000 Blue, 50 $157.444,56 $163.112,57 ($5.668,01)