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

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

Os valores nulos são ignorados e não são levados em conta no cálculo.

Observação

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

Syntax

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

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

Retornos

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

Dica

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

Exemplo

Este exemplo mostra quantos tipos de eventos de tempestade fatais ocorreram 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
NOVA YORK 9
NOVA JERSEY 7
WASHINGTON 7
MICHIGAN 7
MISSOURI 7
... ...

Precisão da estimativa

Essa função usa uma variante do algoritmo HLL (HyperLogLog), 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:

Grafo mostrando a distribuição de erros hll.