dcountif() (fonction d’agrégation)

Estime le nombre de valeurs distinctes d’expr pour les lignes dans lesquelles le prédicat est évalué à true.

Les valeurs Null sont ignorées et ne sont pas prises en compte dans le calcul.

Notes

Cette fonction est utilisée conjointement avec l’opérateur de synthèse.

Syntax

dcountif(expr, prédicat, [,précision])

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
expr string ✔️ Expression utilisée pour le calcul d’agrégation.
predicate string ✔️ Expression utilisée pour filtrer les lignes.
Précision int Contrôle entre vitesse et précision. Si la valeur n’est pas spécifiée, la valeur par défaut est 1. Pour connaître les valeurs prises en charge, consultez Précision de l’estimation .

Retours

Retourne une estimation du nombre de valeurs distinctes d’expr pour les lignes dans lesquelles le prédicat est évalué à true.

Conseil

dcountif() peut renvoyer une erreur dans les cas où toutes ou aucune des lignes passent l’expression Predicate .

Exemple

Cet exemple montre le nombre de types d’événements d’orage fatals qui se sont produits dans chaque état.

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

Le tableau de résultats affiché inclut uniquement les 10 premières lignes.

State DifferentFatalEvents
CALIFORNIE 12
TEXAS 12
OKLAHOMA 10
ILLINOIS 9
KANSAS 9
NEW YORK 9
NEW JERSEY 7
WASHINGTON 7
MICHIGAN 7
MISSOURI 7
... ...

Exactitude d’estimation

Cette fonction utilise une variante de l’algorithme HyperLogLog (HLL), qui effectue une estimation stochastique de la cardinalité de l’ensemble. L’algorithme fournit un « bouton » qui peut être utilisé pour équilibrer la précision et la durée d’exécution par taille de mémoire :

Précision Erreur (%) Nombre d’entrées
0 1.6 212
1 0,8 214
2 0.4 216
3 0,28 217
4 0.2 218

Notes

La colonne « Nombre d’entrées » indique le nombre de compteurs sur 1 octet dans l’implémentation de HLL.

L’algorithme inclut certaines dispositions pour effectuer un décompte parfait (zéro erreur) si la cardinalité définie est suffisamment petite :

  • Lorsque le niveau d’exactitude est 1, 1 000 valeurs sont retournées
  • Lorsque le niveau d’exactitude est 2, 8 000 valeurs sont retournées

La limite d’erreur est probabiliste, non théorique. La valeur est l’écart type de distribution des erreurs (sigma), et 99,7 % des estimations auront une erreur relative inférieure à 3 x sigma.

L’illustration suivante montre la fonction de distribution des probabilités de l’erreur d’estimation relative, en pourcentage, pour tous les paramètres d’exactitude pris en charge :

Graphique montrant la distribution des erreurs hll.