Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Переключайте службы с помощью раскрывающегося списка Версия. Дополнительные сведения о навигации.
Область применения: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Функция percentile() вычисляет оценку для указанного ближайшего процентиля ранга населения, определенного экспром.
Точность зависит от плотности заполнения области процентиля.
percentiles() работает аналогично percentile().
percentiles() Однако можно вычислить несколько значений процентиля одновременно, что более эффективно, чем вычисление каждого процентильного значения отдельно.
Чтобы вычислить взвешанные процентилии, см. процентиль().
Note
Эта функция используется в сочетании с оператором сводки.
Syntax
percentile(
Expr,Процентиль)
percentiles(
Expr,Процентили)
Дополнительные сведения о соглашениях синтаксиса.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| expr | string |
✔️ | Выражение, используемое для вычисления агрегирования. |
| percentile | real | ✔️ | Константа, указывающая процентиль. |
| percentiles | real | ✔️ | Один или несколько разделенных запятыми процентилей. |
Returns
Возвращает таблицу с оценками для экспра указанных процентилей в группе, каждая из которых содержит отдельный столбец.
Note
Чтобы вернуть процентили в одном столбце, ознакомьтесь с разделом Return Percentiles в виде массива.
Examples
В примерах этого раздела показано, как использовать синтаксис для начала работы.
Примеры, приведенные в этой статье, используют общедоступные таблицы в кластере справки, например
StormEventsтаблицу в базе данных Samples .
В примерах этой статьи используются общедоступные таблицы, такие как
Weatherтаблица в коллекции примеров Weather Analytics. Возможно, потребуется изменить имя таблицы в примере запроса, чтобы она соответствовала таблице в рабочей области.
Вычисление одного процентиля
В следующем примере показано значение DamageProperty , превышающее 95 % выборки набора и меньше 5% набора выборок.
StormEvents | summarize percentile(DamageProperty, 95) by State
Output
Показанная таблица результатов содержит только первые 10 строк.
| State | percentile_DamageProperty_95 |
|---|---|
| ЮЖНАЯ АТЛАНТИКА | 0 |
| FLORIDA | 40000 |
| GEORGIA | 143333 |
| MISSISSIPPI | 80000 |
| АМЕРИКАНСКОЕ САМОА | 250000 |
| KENTUCKY | 35000 |
| OHIO | 150000 |
| KANSAS | 51392 |
| MICHIGAN | 49167 |
| ALABAMA | 50000 |
Вычисление нескольких процентилей
В следующем примере показаны значения одновременно вычисляемых DamageProperty с использованием 5, 50 (медиана) и 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Output
Показанная таблица результатов содержит только первые 10 строк.
| State | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
|---|---|---|---|
| ЮЖНАЯ АТЛАНТИКА | 0 | 0 | 0 |
| FLORIDA | 0 | 0 | 40000 |
| GEORGIA | 0 | 0 | 143333 |
| MISSISSIPPI | 0 | 0 | 80000 |
| АМЕРИКАНСКОЕ САМОА | 0 | 0 | 250000 |
| KENTUCKY | 0 | 0 | 35000 |
| OHIO | 0 | 2000 | 150000 |
| KANSAS | 0 | 0 | 51392 |
| MICHIGAN | 0 | 0 | 49167 |
| ALABAMA | 0 | 0 | 50000 |
| ... | ... |
Возврат процентилей в виде массива
Вместо возврата значений в отдельных столбцах используйте percentiles_array() функцию для возврата процентилей в одном столбце динамического типа массива.
Syntax
percentiles_array(
Expr,Процентили)
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| expr | string |
✔️ | Выражение, используемое для вычисления агрегирования. |
| percentiles | реальный или динамический | ✔️ | Один или несколько разделенных запятыми процентилей или динамический массив процентилей. Каждый процентиль должен быть реальным значением. |
Returns
Возвращает оценку для экспра указанных процентилей в группе в виде одного столбца динамического типа массива.
Examples
Процентили, разделенные запятыми
Несколько процентилей можно получить в виде массива в одном динамическом столбце, а не в нескольких столбцах, как с процентилями().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Output
В таблице результатов отображаются только первые 10 строк.
| 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 |
| ... | ... | ... |
Динамический массив процентилей
Процентиль для percentiles_array можно указать в динамическом массиве целых чисел или чисел с плавающей запятой. Массив должен быть константой, но не должен быть литеральным.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Output
В таблице результатов отображаются только первые 10 строк.
| 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 |
| ... | ... | ... |
Ближайший процентиль ранга
P-th percentile (0 <P<= 100) списка упорядоченных значений, отсортированных по возрастанию, является наименьшим значением в списке. Процент данных P меньше или равен значению процентиля P-th (из статьи Википедии по процентилям).
Определите 0-й процентиль, чтобы быть наименьшим членом популяции.
Note
Учитывая приблизительный характер вычисления, фактическое возвращаемое значение не может быть членом совокупности. Определение ближайшего ранга означает, что P=50 не соответствует интерполятивному определению медиана. При оценке важности этого несоответствия для конкретного приложения следует учитывать размер совокупности и ошибку оценки .
Ошибка оценки в процентилях
Агрегат процентилей предоставляет приблизительное значение с помощью T-Digest.
Note
- Границы ошибки оценки изменяются со значением запрошенного процентиля. Лучшая точность находится в обоих концах шкалы [0..100]. Процентильы 0 и 100 являются точными и максимальными значениями распределения. Точность постепенно снижается к середине шкалы. Это худшее на медиане и ограничено на 1%.
- Границы ошибки наблюдаются на диапазоне, а не на значении. Предположим, процентиль (X, 50) вернул значение Xm. Оценка гарантирует, что по крайней мере 49% и не более 51% значений X меньше или равно Xm. Нет теоретических ограничений на разницу между Xm и фактическим медианом значении X.
- Оценка иногда может привести к точному значению, но нет надежных условий, чтобы определить, когда это будет в случае.