percentil(), percentil() (agregační funkce)
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().
Syntaxe
percentile(
percentil výrazu,
)
percentiles(
,
percentily výrazů)
Přečtěte si další informace o konvencích syntaxe.
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
výraz | string |
✔️ | Výraz, který se má použít pro výpočet agregace. |
percentil | int nebo long | ✔️ | Konstanta, která určuje percentil. |
percentily | int nebo long | ✔️ | Jeden nebo více percentilů oddělených čárkami. |
Návraty
Vrátí tabulku s odhady výrazu zadaných percentilů ve skupině, z nichž každý je v samostatném sloupci.
Poznámka:
Pokud chcete vrátit percentily v jednom sloupci, podívejte se na návratové percentily jako pole.
Příklady
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
Výstup
Zobrazená tabulka výsledků obsahuje pouze prvních 10 řádků.
State | percentile_DamageProperty_95 |
---|---|
ATLANTICKÝ JIH | 0 |
FLORIDA | 40000 |
GEORGIA | 143333 |
MISSISSIPPI | 800 000 |
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
Výstup
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 | 800 000 |
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.
Syntaxe
percentiles_array(
,
percentily výrazů)
Parametry
Název | Type | Požadováno | Popis |
---|---|---|---|
výraz | string |
✔️ | Výraz, který se má použít pro výpočet agregace. |
percentily | int, long nebo dynamic | ✔️ | Jeden nebo více percentilů oddělených čárkami nebo dynamické pole percentilů. Každý percentil může být celé číslo nebo dlouhá hodnota. |
Návraty
Vrátí odhad výrazu zadaných percentilů ve skupině jako jeden sloupec dynamického typu pole.
Příklady
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
Výstup
Tabulka výsledků zobrazuje pouze prvních 10 řádků.
SensorName | percentiles_Value | avg_Value |
---|---|---|
snímač-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
snímač-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
snímač-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
snímač-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
snímač-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
snímač-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
snímač-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
snímač-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
snímač-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
snímač-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
Výstup
Tabulka výsledků zobrazuje pouze prvních 10 řádků.
SensorName | percentiles_Value | avg_Value |
---|---|---|
snímač-82 | ["0.048141473520867069","0.24407515500271132","0.48974511106780577","0.74160998970950343","0.94587903204190071"] | 0.493950914 |
snímač-130 | ["0.049200214398937764","0.25735850440187535","0.51206374010048239","0.74182335059053839","0.95210342463616771"] | 0.505111463 |
snímač-56 | ["0.04857779335488676","0.24709868149337144","0.49668762923789589","0.74458470404241883","0.94889104840865857"] | 0.497955018 |
snímač-24 | ["0.051507199150534679","0.24803904945640423","0.50397070213183581","0.75653888126010793","0.9518782718727431"] | 0.501084379 |
snímač-47 | ["0.045991246974755672","0.24644331118208851","0.48089197707088743","0.74475142784472248","0.9518322864959039"] | 0.49386228 |
snímač-135 | ["0.05132897529660399","0.24204987641954018","0.48470113942206461","0.74275730068433621","0.94784079559229406"] | 0.494817619 |
snímač-74 | ["0.048914714739047828","0.25160926036445724","0.49832498850160978","0.75257887767110776","0.94932261924236094"] | 0.501627252 |
snímač-173 | ["0.048333149363009836","0.26084250046756496","0.51288012531934613","0.74964772791583412","0.95156058795294"] | 0.505401226 |
snímač-28 | ["0.048511161184567046","0.2547387968731824","0.50101318228599656","0.75693845702682039","0.95243122486483989"] | 0.502066244 |
snímač-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.
Poznámka:
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.
Poznámka:
- 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.