percentil(), percentis() (função de agregação)
Aplica-se a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
A função percentile()
calcula uma estimativa para a de percentil especificada mais próxima da população definida por expr .
A precisão depende da densidade populacional na região do percentil.
percentiles()
funciona de forma semelhante a percentile()
. No entanto, percentiles()
pode calcular vários valores de percentil de uma só vez, o que é mais eficiente do que calcular cada valor de percentil separadamente.
Para calcular percentis ponderados, ver percentis percentilesw().
Observação
Esta função é usada em conjunto com o operador resumo.
Sintaxe
percentile(
expr,
percentil)
percentiles(
expr,
percentis)
Saiba mais sobre convenções de sintaxe.
Parâmetros
Designação | Tipo | Necessário | Descrição |
---|---|---|---|
expr | string |
✔️ | A expressão a ser usada para o cálculo de agregação. |
percentil | int ou longo | ✔️ | Uma constante que especifica o percentil. |
percentis | int ou longo | ✔️ | Um ou mais percentis separados por vírgula. |
Devoluções
Retorna uma tabela com as estimativas para de expiração dos percentis especificados no grupo, cada um em uma coluna separada.
Observação
Para retornar os percentis em uma única coluna, consulte Retornar percentis como uma matriz.
Exemplos
Calcular percentil único
O exemplo a seguir mostra o valor de DamageProperty
sendo maior que 95% do conjunto de amostras e menor que 5% do conjunto de amostras.
StormEvents | summarize percentile(DamageProperty, 95) by State
Output
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
Estado | percentile_DamageProperty_95 |
---|---|
ATLÂNTICO SUL | 0 |
FLÓRIDA | 40000 |
GEÓRGIA | 143333 |
MISSISSIPPI | 80000 |
SAMOA AMERICANA | 250000 |
KENTUCKY | 35000 |
OHIO | 150000 |
KANSAS | 51392 |
MICHIGAN | 49167 |
ALABAMA | 50000 |
Calcular vários percentis
O exemplo a seguir mostra o valor de DamageProperty
calculado simultaneamente usando 5, 50 (mediana) e 95.
StormEvents | summarize percentiles(DamageProperty, 5, 50, 95) by State
Output
A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.
Estado | percentile_DamageProperty_5 | percentile_DamageProperty_50 | percentile_DamageProperty_95 |
---|---|---|---|
ATLÂNTICO SUL | 0 | 0 | 0 |
FLÓRIDA | 0 | 0 | 40000 |
GEÓRGIA | 0 | 0 | 143333 |
MISSISSIPPI | 0 | 0 | 80000 |
SAMOA AMERICANA | 0 | 0 | 250000 |
KENTUCKY | 0 | 0 | 35000 |
OHIO | 0 | 2000 | 150000 |
KANSAS | 0 | 0 | 51392 |
MICHIGAN | 0 | 0 | 49167 |
ALABAMA | 0 | 0 | 50000 |
... | ... |
Percentis de retorno como uma matriz
Em vez de retornar os valores em colunas individuais, use a função percentiles_array()
para retornar os percentis em uma única coluna do tipo de matriz dinâmica.
Sintaxe
percentiles_array(
expr,
percentis)
Parâmetros
Designação | Tipo | Necessário | Descrição |
---|---|---|---|
expr | string |
✔️ | A expressão a ser usada para o cálculo de agregação. |
percentis | int, longo ou dinâmico | ✔️ | Um ou mais percentis separados por vírgulas ou uma matriz dinâmica de percentis. Cada percentil pode ser um valor inteiro ou longo. |
Devoluções
Retorna uma estimativa para expr dos percentis especificados no grupo como uma única coluna do tipo de matriz dinâmica.
Exemplos
Percentis separados por vírgulas
Vários percentis podem ser obtidos como uma matriz em uma única coluna dinâmica, em vez de em várias colunas como acontece com percentis().
TransformedSensorsData
| summarize percentiles_array(Value, 5, 25, 50, 75, 95), avg(Value) by SensorName
Output
A tabela de resultados exibe apenas as primeiras 10 linhas.
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 |
... | ... | ... |
Matriz dinâmica de percentis
Os percentis para percentiles_array
podem ser especificados em uma matriz dinâmica de números inteiros ou de vírgula flutuante. A matriz deve ser constante, mas não precisa ser literal.
TransformedSensorsData
| summarize percentiles_array(Value, dynamic([5, 25, 50, 75, 95])), avg(Value) by SensorName
Output
A tabela de resultados exibe apenas as primeiras 10 linhas.
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 |
... | ... | ... |
Percentil mais próximo
P-ésimo percentil (0 <P<= 100) de uma lista de valores ordenados, ordenados por ordem crescente, é o menor valor da lista. O P por cento dos dados é menor ou igual a P-ésimo valor do percentil (do artigo da Wikipédia sobre percentis).
Defina percentis 0-ésimo para ser o menor membro da população.
Observação
Dada a natureza aproximativa do cálculo, o valor real devolvido pode não ser um membro da população. Definição de classificação mais próxima significa que P= 50 não está de acordo com a definição interpolativa da mediana. Ao avaliar a significância desta discrepância para a aplicação específica, a dimensão da população e um erro de estimativa devem ser tidos em conta.
Erro de estimativa em percentis
O agregado de percentis fornece um valor aproximado usando T-Digest.
Observação
- Os limites do erro de estimativa variam com o valor do percentil solicitado. A melhor precisão está em ambas as extremidades da escala [0,.100]. Os percentis 0 e 100 são os valores mínimos e máximos exatos da distribuição. A precisão diminui gradualmente para o meio da escala. É pior na mediana e está limitado a 1%.
- Os limites de erro são observados na classificação, não no valor. Suponha que o percentil (X, 50) retornou um valor de Xm. A estimativa garante que pelo menos 49% e no máximo 51% dos valores de X são menores ou iguais a Xm. Não existe um limite teórico para a diferença entre Xm e o valor mediano real de X.
- A estimativa pode, por vezes, resultar num valor preciso, mas não existem condições fiáveis para definir quando será o caso.