Dela via


percentile(), percentiles() (sammansättningsfunktion)

Gäller för: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

Funktionen percentile() beräknar en uppskattning för den angivna av populationen som definieras av uttr. Noggrannheten beror på populationens densitet i percentilens region.

percentiles() fungerar på samma sätt som percentile(). Men percentiles() kan beräkna flera percentilvärden samtidigt, vilket är effektivare än att beräkna varje percentilvärde separat.

Information om hur du beräknar viktade percentiler finns i percentilesw().

Not

Den här funktionen används tillsammans med operatorn summarize.

Syntax

percentile( , percentil)

percentiles( , percentiler)

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Krävs Beskrivning
uttr string ✔️ Uttrycket som ska användas för aggregeringsberäkning.
percentil int eller long ✔️ En konstant som anger percentilen.
percentiler int eller long ✔️ En eller flera kommaavgränsade percentiler.

Returnerar

Returnerar en tabell med uppskattningarna för uttr av de angivna percentilerna i gruppen, var och en i en separat kolumn.

Not

Om du vill returnera percentilerna i en enda kolumn kan du läsa Returnera percentiler som en matris.

Exempel

Beräkna en percentil

I följande exempel visas värdet för DamageProperty större än 95% av exempeluppsättningen och mindre än 5% i exempeluppsättningen.

StormEvents | summarize percentile(DamageProperty, 95) by State

utdata

Resultattabellen som visas innehåller endast de första 10 raderna.

Stat percentile_DamageProperty_95
ATLANTEN, SÖDRA 0
FLORIDA 40000
GEORGIEN 143333
MISSISSIPPI 80000
AMERIKANSKA SAMOA 250000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Beräkna flera percentiler

I följande exempel visas värdet för DamageProperty som samtidigt beräknas med hjälp av 5, 50 (median) och 95.

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

utdata

Resultattabellen som visas innehåller endast de första 10 raderna.

Stat percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTEN, SÖDRA 0 0 0
FLORIDA 0 0 40000
GEORGIEN 0 0 143333
MISSISSIPPI 0 0 80000
AMERIKANSKA SAMOA 0 0 250000
KENTUCKY 0 0 35000
OHIO 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Returnera percentiler som en matris

I stället för att returnera värdena i enskilda kolumner använder du funktionen percentiles_array() för att returnera percentilerna i en enda kolumn av dynamisk matristyp.

Syntax

percentiles_array( , percentiler)

Parametrar

Namn Typ Krävs Beskrivning
uttr string ✔️ Uttrycket som ska användas för aggregeringsberäkning.
percentiler int, long eller dynamic ✔️ En eller flera kommaavgränsade percentiler eller en dynamisk matris med percentiler. Varje percentil kan vara ett heltal eller ett långt värde.

Returnerar

Returnerar en uppskattning för uttr av de angivna percentilerna i gruppen som en enda kolumn av dynamisk matristyp.

Exempel

Kommaavgränsade percentiler

Flera percentiler kan hämtas som en matris i en enda dynamisk kolumn, i stället för i flera kolumner som med percentiler().

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

utdata

Resultattabellen visar endast de första 10 raderna.

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
... ... ...

Dynamisk matris med percentiler

Percentiler för percentiles_array kan anges i en dynamisk matris med heltals- eller flyttalsnummer. Matrisen måste vara konstant men behöver inte vara literal.

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

utdata

Resultattabellen visar endast de första 10 raderna.

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
... ... ...

Närmaste rangordningsprocentil

P-th percentil (0 <P<= 100) i en lista med ordnade värden, sorterade i stigande ordning, är det minsta värdet i listan. P- procent av data är mindre eller lika med P-e percentilvärdet (från Wikipedia-artikeln om percentiler).

Definiera 0-th percentiler som den minsta medlemmen i populationen.

Not

Med tanke på beräkningens ungefärliga karaktär får det faktiska returnerade värdet inte vara medlem i populationen. Närmsta rangdefinition innebär att P=50 inte överensstämmer med interpolativ definition av medianvärdet. När man utvärderar betydelsen av denna avvikelse för det specifika programmet bör populationens storlek och ett uppskattningsfel beaktas.

Uppskattningsfel i percentiler

Percentilaggregatet ger ett ungefärligt värde med hjälp av T-Digest.

Not

  • Gränserna för uppskattningsfelet varierar med värdet för den begärda percentilen. Den bästa noggrannheten är i båda ändar av [0..100]-skalan. Percentilerna 0 och 100 är de exakta lägsta och högsta värdena för fördelningen. Noggrannheten minskar gradvis mot mitten av skalan. Det är sämst på medianen och är begränsad till 1%.
  • Felgränsen observeras i rangordningen, inte på värdet. Anta att percentil(X, 50) returnerade ett värde på Xm. Uppskattningen garanterar att minst 49% och högst 51% av värdena för X är mindre eller lika med Xm. Det finns ingen teoretisk gräns för skillnaden mellan Xm och det faktiska medianvärdet X.
  • Uppskattningen kan ibland resultera i ett exakt värde, men det finns inga tillförlitliga villkor att definiera när så är fallet.