Dela via


dcountif() (sammansättningsfunktion)

Beräknar antalet distinkta värden för uttr för rader där predikatet utvärderas till true.

Null-värden ignoreras och räknas inte in i beräkningen.

Anteckning

Den här funktionen används tillsammans med summarize-operatorn.

Syntax

dcountif(expr, predicate, [,accuracy])

Läs mer om syntaxkonventioner.

Parametrar

Namn Typ Obligatorisk Beskrivning
Uttryck string ✔️ Uttrycket som används för aggregeringsberäkningen.
Predikat string ✔️ Uttrycket som används för att filtrera rader.
Noggrannhet int Kontrollen mellan hastighet och noggrannhet. Om det är ospecificerat är 1standardvärdet . Se Uppskattningsprecision för värden som stöds.

Returer

Returnerar en uppskattning av antalet distinkta värden för uttr för rader där predikatet utvärderas till true.

Tips

dcountif() kan returnera ett fel i de fall där alla eller ingen av raderna skickar Predicate uttrycket.

Exempel

Det här exemplet visar hur många typer av allvarliga stormhändelser som inträffat i varje tillstånd.

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

Resultattabellen som visas innehåller bara de första 10 raderna.

Tillstånd DifferentFatalEvents
KALIFORNIEN 12
TEXAS 12
OKLAHOMA 10
ILLINOIS 9
KANSAS 9
NEW YORK 9
NEW JERSEY 7
WASHINGTON 7
MICHIGAN 7
MISSOURI 7
... ...

Uppskattningsnoggrannhet

Den här funktionen använder en variant av HLL-algoritmen (HyperLogLog), som gör en stokastisk uppskattning av den angivna kardinaliteten. Algoritmen ger en "ratt" som kan användas för att balansera noggrannhet och körningstid per minnesstorlek:

Noggrannhet Fel (%) Antal poster
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
4 0,2 218

Anteckning

Kolumnen "antal poster" är antalet 1 byte-räknare i HLL-implementeringen.

Algoritmen innehåller vissa bestämmelser för att göra ett perfekt antal (noll fel), om den inställda kardinaliteten är tillräckligt liten:

  • När noggrannhetsnivån är 1returneras 1 000 värden
  • När noggrannhetsnivån är 2returneras 8 000 värden

Felgränsen är probabilistisk, inte en teoretisk bindning. Värdet är standardavvikelsen för felfördelningen (sigma) och 99,7 % av uppskattningarna kommer att ha ett relativt fel på under 3 x sigma.

Följande bild visar sannolikhetsfördelningsfunktionen för det relativa uppskattningsfelet, i procent, för alla noggrannhetsinställningar som stöds:

Diagram som visar HLL-felfördelningen.