dcount() (Aggregationsfunktion)

Berechnet eine Schätzung der Anzahl unterschiedlicher Werte, die von einem skalaren Ausdruck in der Zusammenfassungsgruppe übernommen werden.

NULL-Werte werden ignoriert und nicht in die Berechnung einbezogen.

Hinweis

Die dcount()-Aggregationsfunktion ist hauptsächlich zum Schätzen der Kardinalität großer Sätze nützlich. Es tauscht die Genauigkeit für die Leistung aus und gibt möglicherweise ein Ergebnis zurück, das zwischen den Ausführungen variiert. Die Reihenfolge der Eingaben hat möglicherweise Auswirkungen auf die Ausgabe.

Hinweis

Diese Funktion wird in Verbindung mit dem summarize-Operator verwendet.

Syntax

dcount(Expr[,Genauigkeit])

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
expr string ✔️ Die Eingabe, deren unterschiedliche Werte gezählt werden sollen.
Genauigkeit int Der Wert, der die angeforderte Schätzgenauigkeit definiert. Standardwert: 1. Weitere Informationen finden Sie unter Geschätzte Genauigkeit für unterstützte Werte.

Gibt zurück

Gibt eine Schätzung der Anzahl der unterschiedlichen Werte von expr in der Gruppe zurück.

Beispiel

Dieses Beispiel zeigt, wie viele Arten von Sturmereignissen in jedem Zustand aufgetreten sind.

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

Die angezeigte Ergebnistabelle enthält nur die ersten 10 Zeilen.

State DifferentEvents
TEXAS 27
CALIFORNIA 26
PENNSYLVANIA 25
GEORGIA 24
ILLINOIS 23
MARYLAND 23
NORTH CAROLINA 23
MICHIGAN 22
FLORIDA 22
OREGON 21
KANSAS 21
... ...

Schätzgenauigkeit

Diese Funktion verwendet eine Variante des HyperLogLogLog-Algorithmus (HLL), der eine stochastische Schätzung der Festgelegtenkardinalität durchführt. Der Algorithmus stellt einen „Knopf“ bereit, über den Genauigkeit und Ausführungszeit pro Arbeitsspeichergröße ausgeglichen werden können:

Genauigkeit Fehler (%) Entry count
0 1.6 212
1 0,8 214
2 0.4 216
3 0.28 217
4 0.2 218

Hinweis

Die Spalte „entry count“ ist die Anzahl von 1-Byte-Leistungsindikatoren in der HLL-Implementierung.

Der Algorithmus enthält einige Vorkehrungen für eine perfekte Anzahl (null Fehler), wenn die festgelegte Kardinalität klein genug ist:

  • Wenn die Genauigkeitsgrad 1 ist, werden 1.000 Werte zurückgegeben.
  • Wenn die Genauigkeitsgrad 2 ist, werden 8.000 Werte zurückgegeben.

Die Fehlerbindung ist probabilistisch und keine theoretische Grenze. Der Wert ist die Standardabweichung der Fehlerverteilung (Sigma), und 99,7 % der Schätzungen weisen einen relativen Fehler von unter 3 x Sigma auf.

Die folgende Abbildung zeigt die Wahrscheinlichkeitsverteilungsfunktion des relativen Schätzfehlers in Prozent für alle unterstützten Genauigkeitseinstellungen:

Diagramm, das die hll-Fehlerverteilung zeigt.