dcount() (fonction d’agrégation)

Calcule une estimation du nombre de valeurs distinctes prises par une expression scalaire dans le groupe résumé.

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

Notes

La fonction d’agrégation dcount() est principalement utile pour estimer la cardinalité des jeux énormes. Il échange la précision en fonction des performances et peut retourner un résultat qui varie d’une exécution à l’autre. L’ordre des entrées peut avoir une incidence sur sa sortie.

Notes

Cette fonction est utilisée conjointement avec l’opérateur summarize.

Syntax

dcount(expr[,accuracy])

Découvrez les conventions de syntaxe.

Paramètres

Nom Type Obligatoire Description
expr string ✔️ Entrée dont les valeurs distinctes doivent être comptées.
Précision int Valeur qui définit la précision d’estimation demandé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 dans le groupe.

Exemple

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

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

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

State DifferentEvents
TEXAS 27
CALIFORNIE 26
PENNSYLVANIA 25
GEORGIE 24
ILLINOIS 23
MARYLAND 23
CAROLINE DU NORD 23
MICHIGAN 22
FLORIDE 22
OREGON 21
KANSAS 21
... ...

Exactitude d’estimation

Cette fonction utilise une variante de l’algorithme HyperLogLog (HLL), qui effectue une estimation stochastique de la cardinalité d’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.