Delen via


percentiel(), percentielen() (aggregatiefunctie)

Applies to: ✅Microsoft FabricAzure Data ExplorerAzure MonitorMicrosoft Sentinel

The percentile() function calculates an estimate for the specified nearest-rank percentile of the population defined by expr. De nauwkeurigheid is afhankelijk van de dichtheid van de populatie in de regio van het percentiel.

percentiles() werkt op dezelfde manier als percentile(). percentiles() kan echter meerdere percentielwaarden tegelijk berekenen, wat efficiënter is dan het afzonderlijk berekenen van elke percentielwaarde.

To calculate weighted percentiles, see percentilesw().

Note

This function is used in conjunction with the summarize operator.

Syntax

percentile( expr,percentile)

percentiles( expr,percentiles)

Learn more about syntax conventions.

Parameters

Name Type Required Description
expr string ✔️ De expressie die moet worden gebruikt voor aggregatieberekening.
percentile real ✔️ Een constante die het percentiel aangeeft.
percentiles real ✔️ Een of meer door komma's gescheiden percentielen.

Returns

Returns a table with the estimates for expr of the specified percentiles in the group, each in a separate column.

Note

Als u de percentielen in één kolom wilt retourneren, raadpleegt u Percentielen retourneren als een matrix.

Examples

In de voorbeelden in deze sectie ziet u hoe u de syntaxis kunt gebruiken om aan de slag te gaan.

The examples in this article use publicly available tables in the help cluster, such as the StormEvents table in the Samples database.

The examples in this article use publicly available tables, such as the Weather table in the Weather analytics sample gallery. Mogelijk moet u de tabelnaam in de voorbeeldquery wijzigen zodat deze overeenkomt met de tabel in uw werkruimte.

Eén percentiel berekenen

In het volgende voorbeeld ziet u de waarde van DamageProperty groter is dan 95% van de steekproefset en kleiner is dan 5% van de steekproefset.

StormEvents | summarize percentile(DamageProperty, 95) by State

Output

De weergegeven resultatentabel bevat alleen de eerste 10 rijen.

State percentile_DamageProperty_95
ATLANTIC SOUTH 0
FLORIDA 40000
GEORGIA 143333
MISSISSIPPI 80000
AMERICAN SAMOA 250000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Meerdere percentielen berekenen

In het volgende voorbeeld ziet u de waarde van DamageProperty tegelijkertijd berekend met 5, 50 (mediaan) en 95.

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

Output

De weergegeven resultatentabel bevat alleen de eerste 10 rijen.

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

Percentielen retourneren als matrix

In plaats van de waarden in afzonderlijke kolommen te retourneren, gebruikt u de functie percentiles_array() om de percentielen in één kolom met een dynamisch matrixtype te retourneren.

Syntax

percentiles_array( expr,percentiles)

Parameters

Name Type Required Description
expr string ✔️ De expressie die moet worden gebruikt voor aggregatieberekening.
percentiles echt of dynamisch ✔️ Een of meer door komma's gescheiden percentielen of een dynamische matrix van percentielen. Elk percentiel moet een echte waarde zijn.

Returns

Returns an estimate for expr of the specified percentiles in the group as a single column of dynamic array type.

Examples

Comma-separated percentiles

Multiple percentiles can be obtained as an array in a single dynamic column, instead of in multiple columns as with percentiles().

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

Output

In de resultatentabel worden alleen de eerste 10 rijen weergegeven.

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

Dynamische matrix van percentielen

Percentielen voor percentiles_array kunnen worden opgegeven in een dynamische matrix met gehele getallen of getallen met drijvende komma. De matrix moet constant zijn, maar hoeft niet letterlijk te zijn.

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

Output

In de resultatentabel worden alleen de eerste 10 rijen weergegeven.

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

Nearest-rank percentile

P-th percentile (0 <P<= 100) of a list of ordered values, sorted in ascending order, is the smallest value in the list. The P percent of the data is less or equal to P-th percentile value (from Wikipedia article on percentiles).

Define 0-th percentiles to be the smallest member of the population.

Note

Gezien de benadering van de berekening is de werkelijke geretourneerde waarde mogelijk geen lid van de populatie. Nearest-rank definition means that P=50 does not conform to the interpolative definition of the median. 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.

Schattingsfout in percentielen

The percentiles aggregate provides an approximate value using T-Digest.

Note

  • De grenzen van de schattingsfout variëren met de waarde van het aangevraagde percentiel. De beste nauwkeurigheid is aan beide uiteinden van de schaal [0..100]. Percentielen 0 en 100 zijn de exacte minimum- en maximumwaarden van de verdeling. De nauwkeurigheid neemt geleidelijk af naar het midden van de schaal. Het is slechtst in de mediaan en wordt beperkt tot 1%.
  • Foutgrenzen worden waargenomen op de positie, niet op de waarde. Stel dat percentiel(X, 50) een waarde van Xm heeft geretourneerd. De schatting garandeert dat ten minste 49% en maximaal 51% van de waarden van X kleiner of gelijk zijn aan Xm. Er is geen theoretische limiet voor het verschil tussen Xm en de werkelijke mediaanwaarde van X.
  • De schatting kan soms resulteren in een nauwkeurige waarde, maar er zijn geen betrouwbare voorwaarden om te definiëren wanneer dit het geval is.