dcount() (aggregatiefunctie)

Berekent een schatting van het aantal afzonderlijke waarden dat wordt genomen door een scalaire expressie in de samenvattingsgroep.

Null-waarden worden genegeerd en houden geen rekening met de berekening.

Notitie

De dcount() aggregatiefunctie is voornamelijk handig voor het schatten van de kardinaliteit van grote sets. Het wisselt nauwkeurigheid voor prestaties en kan een resultaat retourneren dat varieert tussen uitvoeringen. De volgorde van de invoer kan van invloed zijn op de uitvoer.

Notitie

Deze functie wordt gebruikt in combinatie met de operator summarize.

Syntax

dcount(expr[,nauwkeurigheid])

Meer informatie over syntaxisconventies.

Parameters

Naam Type Vereist Beschrijving
Expr string ✔️ De invoer waarvan de afzonderlijke waarden moeten worden geteld.
Nauwkeurigheid int De waarde die de aangevraagde schattingsnauwkeurigheid definieert. De standaardwaarde is 1. Zie Schattingsnauwkeurigheid voor ondersteunde waarden.

Retouren

Retourneert een schatting van het aantal afzonderlijke waarden van expr in de groep.

Voorbeeld

In dit voorbeeld ziet u hoeveel soorten stormen er in elke status hebben plaatsgevonden.

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

De weergegeven resultatentabel bevat alleen de eerste 10 rijen.

Staat DifferentEvents
TEXAS 27
CALIFORNIË 26
PENNSYLVANIA 25
GEORGIË 24
ILLINOIS 23
MARYLAND 23
NORTH CAROLINA 23
MICHIGAN 22
FLORIDA 22
OREGON 21
KANSAS 21
... ...

Schattingsnauwkeurigheid

Deze functie maakt gebruik van een variant van het algoritme HyperLogLog (HLL), waarmee een stochastische schatting van de ingestelde kardinaliteit wordt uitgevoerd. Het algoritme biedt een 'knop' die kan worden gebruikt om de nauwkeurigheid en uitvoeringstijd per geheugengrootte te verdelen:

Nauwkeurigheid Fout (%) Aantal vermeldingen
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Notitie

De kolom 'aantal vermeldingen' is het aantal 1-bytetellers in de HLL-implementatie.

Het algoritme bevat enkele voorzieningen voor het uitvoeren van een perfecte telling (nulfout), als de ingestelde kardinaliteit klein genoeg is:

  • Wanneer het nauwkeurigheidsniveau is 1, worden 1000 waarden geretourneerd
  • Wanneer het nauwkeurigheidsniveau is 2, worden 8000 waarden geretourneerd

De foutgrens is probabilistisch, geen theoretische gebondenheid. De waarde is de standaarddeviatie van de foutverdeling (de sigma) en 99,7% van de schattingen heeft een relatieve fout van minder dan 3 x sigma.

In de volgende afbeelding ziet u de kansverdelingsfunctie van de relatieve schattingsfout, in percentages, voor alle ondersteunde nauwkeurigheidsinstellingen:

Grafiek met de hll-foutverdeling.