percentile (), percentile () (funzione di aggregazione)percentile(), percentiles() (aggregation function)

Restituisce una stima per il percentile di rango più vicino specificato della popolazione definita da *Expr* .Returns an estimate for the specified nearest-rank percentile of the population defined by *Expr*. L'accuratezza dipende dalla densità della popolazione nell'area del percentile.The accuracy depends on the density of population in the region of the percentile. Questa funzione può essere utilizzata solo nel contesto dell'aggregazione all'interno di RiepilogoThis function can be used only in context of aggregation inside summarize

  • percentiles()è simile a percentile() , ma calcola un numero di valori percentile, che è più veloce del calcolo di ogni percentile singolarmente.percentiles() is like percentile(), but calculates a number of percentile values, which is faster than calculating each percentile individually.
  • percentilesw()è simile a percentilew() , ma calcola un numero di valori percentile ponderati, che è più veloce del calcolo di ogni percentile singolarmente.percentilesw() is like percentilew(), but calculates a number of weighted percentile values, which is faster than calculating each percentile individually.
  • percentilew()e percentilesw() consentono di calcolare percentile ponderati.percentilew() and percentilesw() let you calculate weighted percentiles. I percentile ponderati calcolano i percentile specificati in un modo "ponderato", trattando ogni valore come se fosse ripetuto weight volte nell'input.Weighted percentiles calculate the given percentiles in a "weighted" way, by treating each value as if it was repeated weight times, in the input.

SintassiSyntax

Riepilogo percentile( expr , percentile)summarize percentile(Expr, Percentile)

riepilogare percentiles( expr , Percentile1 [ , Percentile2])summarize percentiles(Expr, Percentile1 [, Percentile2])

riepilogare percentiles_array( expr , Percentile1 [ , Percentile2])summarize percentiles_array(Expr, Percentile1 [, Percentile2])

riepilogare la percentiles_array( Expr , matrice dinamica expr)summarize percentiles_array(Expr, Dynamic array)

Riepilogo percentilew( expr , WeightExpr , percentile)summarize percentilew(Expr, WeightExpr, Percentile)

riepilogare percentilesw( expr , WeightExpr , Percentile1 [ , Percentile2])summarize percentilesw(Expr, WeightExpr, Percentile1 [, Percentile2])

riepilogare percentilesw_array( expr , WeightExpr , Percentile1 [ , Percentile2])summarize percentilesw_array(Expr, WeightExpr, Percentile1 [, Percentile2])

riepilogare percentilesw_array( expr , WeightExpr , matrice dinamica)summarize percentilesw_array(Expr, WeightExpr, Dynamic array)

ArgomentiArguments

  • *Expr*: Espressione che verrà utilizzata per il calcolo delle aggregazioni.*Expr*: Expression that will be used for aggregation calculation.
  • *WeightExpr*: Espressione che verrà usata come peso dei valori per il calcolo delle aggregazioni.*WeightExpr*: Expression that will be used as the weight of values for aggregation calculation.
  • *Percentile*: Costante Double che specifica il percentile.*Percentile*: A double constant that specifies the percentile.
  • *Dynamic array*: elenco di percentile in una matrice dinamica di numeri interi o a virgola mobile.*Dynamic array*: list of percentiles in a dynamic array of integer or floating point numbers.

RestituisceReturns

Restituisce una stima per *Expr* dei percentile specificati nel gruppo.Returns an estimate for *Expr* of the specified percentiles in the group.

EsempioExamples

Il valore di superiore al Duration 95% del set di campionamento e minore del 5% del set di campionamento.The value of Duration that is larger than 95% of the sample set and smaller than 5% of the sample set.

CallDetailRecords | summarize percentile(Duration, 95) by continent

Calcolare simultaneamente 5, 50 (mediana) e 95.Simultaneously calculate 5, 50 (median) and 95.

CallDetailRecords 
| summarize percentiles(Duration, 5, 50, 95) by continent

Percentili

I risultati mostrano che in Europa il 5% delle chiamate è più breve di 11.55 s, il 50% delle chiamate è inferiore a 3 minuti, 18,46 secondi e 95% di chiamate sono inferiori a 40 minuti 48 secondi.The results show that in Europe, 5% of calls are shorter than 11.55s, 50% of calls are shorter than 3 minutes, 18.46 seconds, and 95% of calls are shorter than 40 minutes 48 seconds.

CallDetailRecords 
| summarize percentiles(Duration, 5, 50, 95), avg(Duration)

Percentili ponderatiWeighted percentiles

Si supponga di misurare ripetutamente il tempo (durata) necessario per completare un'azione.Assume you repetitively measure the time (Duration) it takes an action to complete. Anziché registrare ogni valore della misura, registrare ogni valore di Duration, arrotondato a 100 msec e il numero di volte in cui è stato visualizzato il valore arrotondato (BucketSize).Instead of recording every value of the measurement, you record each value of Duration, rounded to 100 msec, and how many times the rounded value appeared (BucketSize).

Usare summarize percentilesw(Duration, BucketSize, ...) per calcolare i percentile specificati in una modalità "ponderata".Use summarize percentilesw(Duration, BucketSize, ...) to calculate the given percentiles in a "weighted" way. Considerare ogni valore di Duration come se fosse stato ripetuto BucketSize volte nell'input, senza dover materializzare tali record.Treat each value of Duration as if it was repeated BucketSize times in the input, without actually needing to materialize those records.

EsempioExample

Un cliente dispone di un set di valori di latenza in millisecondi: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 } .A customer has a set of latency values in milliseconds: { 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }.

Per ridurre la larghezza di banda e l'archiviazione, eseguire la pre-aggregazione ai bucket seguenti: { 10, 20, 30, 40, 50, 100 } .To reduce bandwidth and storage, do pre-aggregation to the following buckets: { 10, 20, 30, 40, 50, 100 }. Contare il numero di eventi in ogni bucket per produrre la tabella seguente:Count the number of events in each bucket to produce the following table:

Tabella Percentilesw

La tabella Visualizza:The table displays:

  • Otto eventi nel bucket da 10 ms (corrispondenti al subset { 1, 1, 2, 2, 2, 5, 7, 7 } )Eight events in the 10-ms bucket (corresponding to subset { 1, 1, 2, 2, 2, 5, 7, 7 })
  • Sei eventi nel bucket da 20 ms (corrispondenti al subset { 12, 12, 15, 15, 15, 18 } )Six events in the 20-ms bucket (corresponding to subset { 12, 12, 15, 15, 15, 18 })
  • Tre eventi nel bucket da 30 ms (corrispondenti al subset { 21, 22, 26 } )Three events in the 30-ms bucket (corresponding to subset { 21, 22, 26 })
  • Un evento nel bucket 40-ms (corrispondente al subset { 35 } )One event in the 40-ms bucket (corresponding to subset { 35 })

A questo punto, i dati originali non sono più disponibili.At this point, the original data is no longer available. Solo il numero di eventi in ogni bucket.Only the number of events in each bucket. Per calcolare i percentile da questi dati, usare la percentilesw() funzione.To compute percentiles from this data, use the percentilesw() function. Per gli 50, 75 e 99,9 percentile, ad esempio, utilizzare la query seguente.For example, for the 50, 75, and 99.9 percentiles, use the following query.

datatable (ReqCount:long, LatencyBucket:long) 
[ 
    8, 10, 
    6, 20, 
    3, 30, 
    1, 40 
]
| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9) 

Il risultato della query precedente è:The result for the above query is:

Risultato di Percentilesw

La query precedente corrisponde alla funzione percentiles(LatencyBucket, 50, 75, 99.9) , se i dati sono stati espansi nel formato seguente:The above query corresponds to the function percentiles(LatencyBucket, 50, 75, 99.9), if the data was expanded to the following form:

Tabella RAW Percentilesw

Recupero di più percentile in una matriceGetting multiple percentiles in an array

È possibile ottenere più percentile come matrice in una singola colonna dinamica, anziché in più colonne.Multiple percentiles can be obtained as an array in a single dynamic column, instead of in multiple columns.

CallDetailRecords 
| summarize percentiles_array(Duration, 5, 25, 50, 75, 95), avg(Duration)

Risultato matrice percentile

Analogamente, i percentile ponderati possono essere restituiti come matrice dinamica usando percentilesw_array .Similarly, weighted percentiles can be returned as a dynamic array using percentilesw_array.

I percentile per percentiles_array e percentilesw_array possono essere specificati in una matrice dinamica di numeri interi o a virgola mobile.Percentiles for percentiles_array and percentilesw_array can be specified in a dynamic array of integer or floating-point numbers. La matrice deve essere costante, ma non deve essere un valore letterale.The array must be constant but doesn't have to be literal.

CallDetailRecords 
| summarize percentiles_array(Duration, dynamic([5, 25, 50, 75, 95])), avg(Duration)
CallDetailRecords 
| summarize percentiles_array(Duration, range(0, 100, 5)), avg(Duration)

Percentile di rango più vicinoNearest-rank percentile

P-esimo percentile (0 < P <= 100) di un elenco di valori ordinati, ordinati dal minimo al più grande, è il valore più basso nell'elenco.P-th percentile (0 < P <= 100) of a list of ordered values, sorted from least to greatest, is the smallest value in the list. Il p % dei dati è minore o uguale al p-esimo valore percentile (dall'articolo di Wikipedia sui percentile).The P percent of the data is less or equal to P-th percentile value (from Wikipedia article on percentiles).

Definire 0-esimo percentile come membro più piccolo della popolazione.Define 0-th percentiles to be the smallest member of the population.

Nota

Data la natura approssimativa del calcolo, il valore restituito effettivo potrebbe non essere un membro della popolazione.Given the approximating nature of the calculation, the actual returned value may not be a member of the population. La definizione di rango più vicino indica che P= 50 non è conforme alla definizione interpolativa di mediana.Nearest-rank definition means that P=50 does not conform to the interpolative definition of the median. Quando si valuta l'importanza di questa discrepanza per l'applicazione specifica, è necessario tenere conto della dimensione della popolazione e di un errore di stima .When evaluating the significance of this discrepancy for the specific application, the size of the population and an estimation error should be taken into account.

Errore di stima nei percentiliEstimation error in percentiles

L'aggregazione dei percentili fornisce un valore approssimativo usando T-Digest.The percentiles aggregate provides an approximate value using T-Digest.

Nota

  • I limiti nell'errore di stima variano a seconda del valore del percentile richiesto.The bounds on the estimation error vary with the value of the requested percentile. La precisione migliore è a entrambe le estremità della scala [0.. 100].The best accuracy is at both ends of the [0..100] scale. Percentile 0 e 100 sono i valori minimi e massimi esatti della distribuzione.Percentiles 0 and 100 are the exact minimum and maximum values of the distribution. L'accuratezza diminuisce gradualmente verso il centro della scala.The accuracy gradually decreases towards the middle of the scale. Si tratta di una situazione peggiore alla mediana ed è limitata all'1%.It's worst at the median and is capped at 1%.
  • I limiti di errore sono visibili nella classifica, non nel valore.Error bounds are observed on the rank, not on the value. Si supponga che percentile (X, 50) abbia restituito un valore di XM.Suppose percentile(X, 50) returned a value of Xm. La stima garantisce che almeno il 49% e il 51% dei valori di X siano minori o uguali a XM.The estimate guarantees that at least 49% and at most 51% of the values of X are less or equal to Xm. Non esiste alcun limite teorico nella differenza tra XM e il valore mediano effettivo di X.There is no theoretical limit on the difference between Xm and the actual median value of X.
  • La stima può a volte determinare un valore preciso, ma non esistono condizioni affidabili da definire quando sarà il caso.The estimation may sometimes result in a precise value but there are no reliable conditions to define when it will be the case.