percentil(), percentil() (agregační funkce)

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Funkce percentile() vypočítá odhad zadaného percentilu nejbližšího pořadí základního souboru definovaného výrazem. Přesnost závisí na hustotě populace v oblasti percentilu.

percentiles() funguje podobně percentile()jako . percentiles() Lze však vypočítat více hodnot percentilu najednou, což je efektivnější než výpočet jednotlivých hodnot percentilu samostatně.

Pokud chcete vypočítat vážené percentily, podívejte se na percentilsw().

Note

Tato funkce se používá ve spojení s operátorem sumarizace.

Syntax

percentile( Výraz,Percentil)

percentiles( Výraz,percentily)

Přečtěte si další informace o konvencích syntaxe.

Parameters

Name Typ Required Description
expr string ✔️ Výraz, který se má použít pro výpočet agregace.
percentile real ✔️ Konstanta, která určuje percentil.
percentiles real ✔️ Jeden nebo více percentilů oddělených čárkami.

Returns

Vrátí tabulku s odhady výrazu zadaných percentilů ve skupině, z nichž každý je v samostatném sloupci.

Note

Pokud chcete vrátit percentily v jednom sloupci, podívejte se na návratové percentily jako pole.

Examples

Příklady v této části ukazují, jak používat syntaxi, která vám pomůže začít.

Příklady v tomto článku používají veřejně dostupné tabulky v clusteru nápovědy, jako je StormEvents tabulka v databázi Ukázky.

Příklady v tomto článku používají veřejně dostupné tabulky, například Weather tabulku v galerii ukázek analýzy počasí. Možná budete muset změnit název tabulky v ukázkovém dotazu tak, aby odpovídal tabulce v pracovním prostoru.

Výpočet jednoho percentilu

Následující příklad ukazuje hodnotu DamageProperty větší než 95 % ukázkové sady a menší než 5 % ukázkové sady.

StormEvents | summarize percentile(DamageProperty, 95) by State

Output

Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.

State percentile_DamageProperty_95
ATLANTICKÝ JIH 0
FLORIDA 40000
GEORGIA 143333
MISSISSIPPI 80000
AMERICKÁ SAMOA 250000
KENTUCKY 35000
OHIO 150000
KANSAS 51392
MICHIGAN 49167
ALABAMA 50000

Výpočet více percentilů

Následující příklad ukazuje hodnotu DamageProperty souběžného výpočtu pomocí 5, 50 (medián) a 95.

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

Output

Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.

State percentile_DamageProperty_5 percentile_DamageProperty_50 percentile_DamageProperty_95
ATLANTICKÝ JIH 0 0 0
FLORIDA 0 0 40000
GEORGIA 0 0 143333
MISSISSIPPI 0 0 80000
AMERICKÁ SAMOA 0 0 250000
KENTUCKY 0 0 35000
OHIO 0 2000 150000
KANSAS 0 0 51392
MICHIGAN 0 0 49167
ALABAMA 0 0 50000
... ...

Vrácení percentilů jako pole

Místo vrácení hodnot v jednotlivých sloupcích použijte percentiles_array() funkci k vrácení percentilů v jednom sloupci dynamického typu pole.

Syntax

percentiles_array( Výraz,percentily)

Parameters

Name Typ Required Description
expr string ✔️ Výraz, který se má použít pro výpočet agregace.
percentiles real or dynamic ✔️ Jeden nebo více percentilů oddělených čárkami nebo dynamické pole percentilů. Každý percentil musí být skutečná hodnota.

Returns

Vrátí odhad výrazu zadaných percentilů ve skupině jako jeden sloupec dynamického typu pole.

Examples

Percentily oddělené čárkami

Více percentilů lze získat jako pole v jednom dynamickém sloupci, nikoli ve více sloupcích jako u percentilů().

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

Output

Tabulka výsledků zobrazuje pouze prvních 10 řádků.

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

Dynamické pole percentilů

Percentily pro percentiles_array lze zadat v dynamické matici celých čísel nebo čísel s plovoucí desetinou čárkou. Pole musí být konstantní, ale nemusí být literál.

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

Output

Tabulka výsledků zobrazuje pouze prvních 10 řádků.

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 percentil

P-th percentil (0 <P<= 100) seznamu seřazených hodnot seřazených ve vzestupném pořadí je nejmenší hodnotou v seznamu. Procento P dat je menší nebo rovno hodnotě P-th percentilu (z článku wikipedie o percentilech).

Definujte 0-tý percentil jako nejmenší člen základního souboru.

Note

Vzhledem k povaze výpočtu nemusí být skutečná vrácená hodnota členem základního souboru. Definice nejbližšího pořadí znamená, že P=50 neodpovídá interpolační definici mediánu. Při vyhodnocování významu této nesrovnalosti pro konkrétní aplikaci je třeba vzít v úvahu velikost základního souboru a odhad chyby .

Odhad chyby v percentilech

Agregace percentilů poskytuje přibližnou hodnotu pomocí funkce T-Digest.

Note

  • Hranice chyby odhadu se liší s hodnotou požadovaného percentilu. Nejlepší přesnost je na obou koncích měřítka [0..100]. Percentily 0 a 100 jsou přesné minimální a maximální hodnoty rozdělení. Přesnost se postupně snižuje směrem ke středu měřítka. Je to nejhorší v mediánu a je omezený na 1 %.
  • V pořadí se pozorují chybové meze, ne na hodnotě. Předpokládejme, že percentil(X; 50) vrátil hodnotu Xm. Odhad zaručuje, že alespoň 49 % a maximálně 51 % hodnot X je menší nebo rovno Xm. Neexistuje žádný teoretický limit rozdílu mezi Xm a skutečnou mediánnou hodnotou X.
  • Odhad může někdy vést k přesné hodnotě, ale neexistují žádné spolehlivé podmínky, které by bylo možné definovat, kdy bude případ.