Partilhar via


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

Calcula o número de valores distintos de expr para linhas em que o predicado é avaliado como true.

Os valores nulos são ignorados e não têm em conta o cálculo.

Nota

Esta função é utilizada em conjunto com o operador summarize.

Syntax

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

Saiba mais sobre as convenções de sintaxe.

Parâmetros

Nome Tipo Necessário Descrição
expr string ✔️ A expressão utilizada para o cálculo de agregação.
predicado string ✔️ A expressão utilizada para filtrar linhas.
precisão int O controlo entre a velocidade e a precisão. Se não for especificado, o valor predefinido é 1. Veja Estimar a precisão dos valores suportados.

Devoluções

Devolve uma estimativa do número de valores distintos de expr para linhas em que o predicado é avaliado como true.

Dica

dcountif() pode devolver um erro nos casos em que todas ou nenhuma das linhas passa 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 apresentada inclui apenas as primeiras 10 linhas.

Estado DifferentFatalEvents
CALIFÓRNIA 12
TEXAS 12
OKLAHOMA 10
ILLINOIS 9
KANSAS 9
NEW YORK 9
NOVA JERSEY 7
WASHINGTON 7
Viana do Castelo 7
MISSOURI 7
... ...

Precisão da estimativa

Esta função utiliza uma variante do algoritmo HyperLogLog (HLL), que faz uma estimativa estocástica da cardinalidade definida. O algoritmo fornece um "botão" que pode ser utilizado para equilibrar a precisão e o tempo de execução por tamanho da 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

Nota

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

O algoritmo inclui algumas disposições para fazer uma contagem perfeita (erro zero), se a cardinalidade definida for suficientemente pequena:

  • Quando o nível de precisão é 1, são devolvidos 1000 valores
  • Quando o nível de precisão é 2, são devolvidos 8000 valores

O limite de erros é probabilístico, não é um vínculo 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 inferior a 3 x sigma.

A imagem seguinte mostra a função de distribuição de probabilidade do erro de estimativa relativa, em percentagens, para todas as definições de precisão suportadas:

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