Compartilhar via


dcountif() (função de agregação)

Estima o número de valores distintos de expr para linhas nas quais o predicado é avaliado como true.

Valores nulos são ignorados e não entram no cálculo.

Observação

Essa função é usada em conjunto com o operador summarize.

Sintaxe

dcountif(expr, predicado, [, precisão])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Digitar Obrigatória Descrição
expr string ✔️ A expressão usada para o cálculo de agregação.
predicate string ✔️ A expressão usada para filtrar linhas.
exatidão int O controle entre velocidade e precisão. Se não for especificado, o valor padrão será 1. Consulte Precisão da estimativa para obter os valores suportados.

Devoluções

Retorna uma estimativa do número de valores distintos de expr para linhas nas quais o predicado é avaliado como true.

Dica

dcountif() pode retornar um erro nos casos em que todas ou nenhuma das linhas passam a Predicate expressão.

Exemplo

Este exemplo mostra quantos tipos de eventos fatais de tempestade aconteceram em cada estado.

StormEvents
| summarize DifferentFatalEvents=dcountif(EventType,(DeathsDirect + DeathsIndirect)>0) by State
| where DifferentFatalEvents > 0
| order by DifferentFatalEvents 

A tabela de resultados mostrada inclui apenas as primeiras 10 linhas.

Estado DifferentFatalEvents
CALIFÓRNIA 12
TEXAS 12
OKLAHOMA 10
ILLINOIS 9
KANSAS 9
NEW YORK 9
NEW JERSEY 7
WASHINGTON 7
MICHIGAN 7
MISSOURI 7
... ...

Precisão da estimativa

Essa função usa uma variante do algoritmo HyperLogLog (HLL), que faz uma estimativa estocástica da cardinalidade do conjunto. O algoritmo oferece um "botão" que pode ser usado para balancear a precisão e o tempo de execução por tamanho de memória:

Precisão Erro (%) Contagem de entradas
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Observação

A coluna "contagem de entradas" é o número de contadores de 1 byte na implementação de HLL.

O algoritmo inclui algumas provisões para fazer uma contagem perfeita (erro zero), se a cardinalidade definida for pequena o suficiente:

  • Quando o nível de precisão é 1, mil valores são retornados
  • Quando o nível de precisão é 2, 8 mil valores são retornados

O erro associado é probabilístico, não um associado teórico. O valor é o desvio padrão da distribuição de erros (o sigma) e 99,7% das estimativas terão um erro relativo de menos de 3 x sigma.

A seguinte imagem mostra a função de distribuição de probabilidade do erro de estimativa relativa, em percentuais, para todas as configurações de precisão com suporte:

Gráfico mostrando a distribuição de erros hll.