percentile(), centiles() (fonction d’agrégation)
S’applique à : ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La percentile()
fonction calcule une estimation pour le centile de rang le plus proche spécifié de la population définie par expr.
La précision dépend de la densité de population dans la région du centile.
percentiles()
fonctionne de la même façon que percentile()
. Toutefois, percentiles()
vous pouvez calculer plusieurs valeurs de centile à la fois, ce qui est plus efficace que le calcul de chaque valeur de centile séparément.
Pour calculer des centiles pondérés, consultez centilesw().
Syntaxe
percentile(
centile expr,
)
percentiles(
centiles expr,
)
En savoir plus sur les conventions de syntaxe.
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
expr | string |
✔️ | Expression à utiliser pour le calcul d’agrégation. |
Percentile | int ou long | ✔️ | Constante qui spécifie le centile. |
Percentiles | int ou long | ✔️ | Un ou plusieurs centiles séparés par des virgules. |
Retours
Retourne une table avec les estimations pour l’expr des centiles spécifiés dans le groupe, chacune dans une colonne distincte.
Remarque
Pour retourner les centiles dans une seule colonne, consultez Les centiles de retour sous forme de tableau.
Exemples
Calculer un centile unique
L’exemple suivant montre la valeur d’être DamageProperty
supérieure à 95 % du jeu d’échantillons et inférieure à 5 % du jeu d’échantillons.
StormEvents | summarize percentile(DamageProperty, 95) by State
Sortie
Le tableau des résultats indiqué inclut uniquement les 10 premières lignes.
État | percentile_DamageProperty_95 |
---|---|
ATLANTIQUE SUD | 0 |
FLORIDE | 40000 |
GEORGIE | 143333 |
MISSISSIPPI | 80000 |
SAMOA AMÉRICAINES | 250 000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Calculer plusieurs centiles
L’exemple suivant montre la valeur de calcul simultanée à l’aide de DamageProperty
5, 50 (médiane) et 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Sortie
Le tableau des résultats indiqué inclut uniquement les 10 premières lignes.
État | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLANTIQUE SUD | 0 | 0 | 0 |
FLORIDE | 0 | 0 | 40000 |
GEORGIE | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
SAMOA AMÉRICAINES | 0 | 0 | 250 000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Retourner des centiles sous forme de tableau
Au lieu de retourner les valeurs dans des colonnes individuelles, utilisez la percentiles_array()
fonction pour renvoyer les centiles dans une seule colonne de type de tableau dynamique.
Syntaxe
percentiles_array(
centiles expr,
)
Paramètres
Nom | Type | Requise | Description |
---|---|---|---|
expr | string |
✔️ | Expression à utiliser pour le calcul d’agrégation. |
Percentiles | int, long ou dynamique | ✔️ | Un ou plusieurs centiles séparés par des virgules ou un tableau dynamique de centiles. Chaque centile peut être une valeur entière ou longue. |
Retours
Retourne une estimation de l’expr des centiles spécifiés dans le groupe sous la forme d’une seule colonne de type de tableau dynamique.
Exemples
Centiles séparés par des virgules
Plusieurs centiles peuvent être obtenus sous forme de tableau dans une colonne dynamique unique, au lieu de plusieurs colonnes comme avec des centiles().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Sortie
Le tableau des résultats affiche uniquement les 10 premières lignes.
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 |
capteur-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 |
capteur-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 |
capteur-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Tableau dynamique de centiles
Les centiles peuvent percentiles_array
être spécifiés dans un tableau dynamique de nombres entiers ou à virgule flottante. Le tableau doit être constant, mais ne doit pas être littéral.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Sortie
Le tableau des résultats affiche uniquement les 10 premières lignes.
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 |
capteur-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 |
capteur-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 |
capteur-34 | ["0.049980293859462954","0.25094722564949412","0.50914023067384762","0.75571549713447961","0.95176564809278674"] | 0.504309494 |
... | ... | ... |
Centile de rang le plus proche
P-ième centile (0 <P<= 100) d’une liste de valeurs ordonnées, triées dans l’ordre croissant, est la plus petite valeur de la liste. Le pourcentage P des données est inférieur ou égal à la valeur P-ième centile (à partir de l’article Wikipédia sur les centiles).
Définissez les 0-ième centiles pour être le plus petit membre de la population.
Remarque
Étant donné la nature approximative du calcul, la valeur retournée réelle peut ne pas être membre de la population. La définition de rang le plus proche signifie que P=50 n’est pas conforme à la définition interpolative de la médiane. Lors de l’évaluation de l’importance de cette différence pour l’application spécifique, la taille de la population et une erreur d’estimation doivent être prises en compte.
Erreur d’estimation dans les centiles
L’agrégation de centiles fournit une valeur approximative au moyen de T-Digest.
Remarque
- Les limites de l’erreur d’estimation dépendent de la valeur du centile demandé. La meilleure précision est à la fois à la fin de l’échelle [0..100]. Les centiles 0 et 100 sont les valeurs minimales et maximales exactes de la distribution. La précision diminue progressivement vers le milieu de l’échelle. C’est le pire à la médiane et est limité à 1%.
- Les limites d’erreur sont observées sur le classement, et non sur la valeur. Supposons que centile (X, 50) a retourné une valeur de Xm. L’estimation garantit qu’au moins 49 % et au plus 51 % des valeurs de X sont inférieures ou égales à Xm. Il n’existe aucune limite théorique sur la différence entre Xm et la valeur médiane réelle de X.
- L’estimation peut parfois entraîner une valeur précise, mais il n’existe aucune condition fiable à définir quand elle sera le cas.