Share via


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

La percentile() funzione calcola una stima per il percentile di rango più vicino specificato della popolazione definita da expr. L'accuratezza dipende dalla densità della popolazione nell'area del percentile.

percentiles() funziona in modo analogo a percentile(). Tuttavia, percentiles() può calcolare più valori percentile contemporaneamente, che è più efficiente rispetto al calcolo di ogni valore percentile separatamente.

Per calcolare i percentili ponderati, vedere percentilesw().

Nota

Questa funzione viene usata insieme all'operatore di riepilogo.

Sintassi

percentile(Expr,Percentile)

percentiles(Expr,Percentili)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Tipo Obbligatoria Descrizione
Expr string ✔️ Espressione da usare per il calcolo delle aggregazioni.
Percentile int o long ✔️ Costante che specifica il percentile.
Percentili int o long ✔️ Uno o più percentile delimitati da virgole.

Restituisce

Restituisce una tabella con le stime per l'expr dei percentile specificati nel gruppo, ognuno in una colonna separata.

Nota

Per restituire i percentile in una singola colonna, vedere Percentile restituito come matrice.

Esempio

Calcolare il percentile singolo

L'esempio seguente mostra il valore di essere maggiore del DamageProperty 95% del set di campioni e minore del 5% del set di campioni.

StormEvents | summarize percentile(DamageProperty, 95) by State

Output

La tabella dei risultati mostrata include solo le prime 10 righe.

State percentile_DamageProperty_95
SUD ATLANTICO 0
FLORIDA 40000
GEORGIA 143333
MISSISSIPPI 80000
SAMOA AMERICANA 250000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Calcolare più percentili

Nell'esempio seguente viene illustrato il valore di DamageProperty calcolato simultaneamente usando 5, 50 (mediano) e 95.

StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State

Output

La tabella dei risultati mostrata include solo le prime 10 righe.

State percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
SUD ATLANTICO 0 0 0
FLORIDA 0 0 40000
GEORGIA 0 0 143333
MISSISSIPPI 0 0 80000
SAMOA AMERICANA 0 0 250000
KENTUCKY 0 0 35000
OHIO 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Percentile restituito come matrice

Anziché restituire i valori nelle singole colonne, utilizzare la percentiles_array() funzione per restituire i percentile in una singola colonna di tipo di matrice dinamica.

Sintassi

percentiles_array(Expr,Percentili)

Parametri

Nome Tipo Obbligatoria Descrizione
Expr string ✔️ Espressione da usare per il calcolo delle aggregazioni.
Percentili int, long o dinamico ✔️ Uno o più percentili separati da virgole o una matrice dinamica di percentile. Ogni percentile può essere un valore intero o lungo.

Restituisce

Restituisce una stima per l'expr dei percentile specificati nel gruppo come singola colonna del tipo di matrice dinamica.

Esempio

Percentile delimitato da virgole

È possibile ottenere più percentile come matrice in una singola colonna dinamica anziché in più colonne come percentile().

TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName

Output

La tabella dei risultati visualizza solo le prime 10 righe.

SensorName percentiles_Value avg_Value
sensor-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
sensor-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
sensor-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
sensor-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
sensor-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
sensor-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
sensor-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
sensor-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
sensor-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
sensor-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Matrice dinamica di percentile

Percentile per percentiles_array può essere specificato in una matrice dinamica di numeri interi o a virgola mobile. La matrice deve essere costante, ma non deve essere letterale.

TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName

Output

La tabella dei risultati visualizza solo le prime 10 righe.

SensorName percentiles_Value avg_Value
sensor-82 ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] 0.493950914
sensor-130 ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] 0.505111463
sensor-56 ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] 0.497955018
sensor-24 ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] 0.501084379
sensor-47 ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] 0.49386228
sensor-135 ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] 0.494817619
sensor-74 ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] 0.501627252
sensor-173 ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] 0.505401226
sensor-28 ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] 0.502066244
sensor-34 ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] 0.504309494
... ... ...

Percentile di rango più vicino

P-th percentile (0 P<= 100<) di un elenco di valori ordinati, ordinati in ordine crescente, è il valore più piccolo nell'elenco. La percentuale P dei dati è minore o uguale al valore percentile P-th (dall'articolo di Wikipedia sui percentile).

Definire 0-th percentile per essere il membro più piccolo della popolazione.

Nota

Data la natura approssimativa del calcolo, il valore restituito effettivo potrebbe non essere un membro della popolazione. La definizione di classificazione più vicina indica che P=50 non è conforme alla definizione interpolativa del mediano. Quando si valuta l'importanza di questa discrepanza per l'applicazione specifica, è necessario tenere conto delle dimensioni della popolazione e di un errore di stima .

Errore di stima nei percentili

L'aggregazione dei percentili fornisce un valore approssimativo usando T-Digest.

Nota

  • I limiti nell'errore di stima variano a seconda del valore del percentile richiesto. L'accuratezza migliore è a entrambe le estremità della scala [0..100]. Percentile 0 e 100 sono i valori minimi e massimi esatto della distribuzione. L'accuratezza diminuisce gradualmente verso il centro della scala. È peggio al mediano e viene limitato al 1%.
  • I limiti di errore sono visibili nella classifica, non nel valore. Si supponga che percentile(X, 50) restituisce un valore di Xm. La stima garantisce che almeno il 49% e il 51% dei valori di X siano minori o uguali a Xm. Non esiste alcun limite teorico sulla differenza tra Xm e il valore mediano effettivo di X.
  • La stima può talvolta causare un valore preciso, ma non esistono condizioni affidabili da definire quando sarà il caso.