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

Calcula uma estimativa do número de valores distintos que são obtidos por uma expressão escalar no grupo de resumo.

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

Observação

A função de agregação dcount() é principalmente útil para estimar a cardinalidade de grandes conjuntos. Ele troca a precisão pelo desempenho e pode retornar um resultado que varia entre as execuções. A ordem das entradas pode ter um efeito na saída.

Observação

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

Syntax

dcount(expr[,precisão])

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Obrigatório Descrição
expr string ✔️ A entrada cujos valores distintos devem ser contados.
Precisão int O valor que define a precisão de estimativa solicitada. O valor padrão é 1. Confira Precisão da estimativa para obter valores com suporte.

Retornos

Retorna uma estimativa do número de valores distintos de expr no grupo.

Exemplo

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

StormEvents
| summarize DifferentEvents=dcount(EventType) by State
| order by DifferentEvents

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

Estado DifferentEvents
TEXAS 27
CALIFÓRNIA 26
Pensilvânia 25
GEÓRGIA 24
ILLINOIS 23
MARYLAND 23
CAROLINA DO NORTE 23
MICHIGAN 22
FLÓRIDA 22
OREGON 21
KANSAS 21
... ...

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.