percentile(), percentiles() (funzione di aggregazione)
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
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 percentili contemporaneamente, che è più efficiente del calcolo di ogni valore percentile separatamente.
Per calcolare i percentili ponderati, vedere percentilesw().
Sintassi
percentile(
expr,
percentile)
percentiles(
expr,
percentiles)
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
expr | string |
✔️ | Espressione da utilizzare per il calcolo delle aggregazioni. |
percentile | int o long | ✔️ | Costante che specifica il percentile. |
Percentili | int o long | ✔️ | Uno o più percentili delimitati da virgole. |
Valori restituiti
Restituisce una tabella con le stime per l'espressione dei percentili specificati nel gruppo, ognuna in una colonna separata.
Nota
Per restituire i percentili in una singola colonna, vedere Restituire percentili come matrice.
Esempi
Calcolare il percentile singolo
Nell'esempio seguente viene illustrato il valore di DamageProperty
maggiore del 95% del set di campioni e inferiore al 5% del set di campioni.
StormEvents | summarize percentile(DamageProperty, 95) by State
Output
La tabella dei risultati mostrata include solo le prime 10 righe.
Provincia | percentile_DamageProperty_95 |
---|---|
SUD ATLANTICO | 0 |
FLORIDA | 40000 |
GEORGIA | 143333 |
MISSISSIPPI | 80000 |
SAMOA AMERICANE | 250000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Calcolare più percentili
Nell'esempio seguente viene illustrato il valore di DamageProperty
calcolato contemporaneamente usando 5, 50 (median) e 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Output
La tabella dei risultati mostrata include solo le prime 10 righe.
Provincia | 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 AMERICANE | 0 | 0 | 250000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Restituisce percentili come matrice
Anziché restituire i valori in singole colonne, usare la percentiles_array()
funzione per restituire i percentili in una singola colonna di tipo matrice dinamico.
Sintassi
percentiles_array(
expr,
percentiles)
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
expr | string |
✔️ | Espressione da utilizzare per il calcolo delle aggregazioni. |
Percentili | int, long o dynamic | ✔️ | Uno o più percentili delimitati da virgole o una matrice dinamica di percentili. Ogni percentile può essere un valore intero o long. |
Valori restituiti
Restituisce una stima per l'espressione dei percentili specificati nel gruppo come singola colonna di tipo matrice dinamica.
Esempi
Percentili delimitati da virgole
È possibile ottenere più percentili come matrice in una singola colonna dinamica, anziché in più colonne come con percentili().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Output
Nella tabella dei risultati vengono visualizzate 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 percentili
I percentili per percentiles_array
possono essere specificati 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
Nella tabella dei risultati vengono visualizzate 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-esimo 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 (dall'articolo di Wikipedia sui percentili).
Definire 0-esimo percentile per essere il membro più piccolo della popolazione.
Nota
Data la natura approssimativa del calcolo, il valore restituito effettivo potrebbe non essere membro della popolazione. La definizione di classificazione più vicina indica che P=50 non è conforme alla definizione interpolativa della mediano. Quando si valuta il significato 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]. I percentili 0 e 100 sono i valori minimi e massimi esatti della distribuzione. L'accuratezza diminuisce gradualmente verso il centro della scala. È peggio al mediano ed è limitato all'1%.
- I limiti di errore sono visibili nella classifica, non nel valore. Si supponga che percentile(X, 50) abbia restituito un valore 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 produrre un valore preciso, ma non esistono condizioni affidabili da definire quando sarà il caso.