Udostępnij za pośrednictwem


dcountif() (funkcja agregacji)

Szacuje liczbę unikatowych wartości wyrażenia dla wierszy, w których predykat oblicza wartość true.

Wartości null są ignorowane i nie są uwzględniane w obliczeniach.

Uwaga

Ta funkcja jest używana w połączeniu z operatorem podsumowania.

Składnia

dcountif(wyrażenie, predykat, [, dokładność])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
wyrażenie string ✔️ Wyrażenie używane do obliczania agregacji.
predykat string ✔️ Wyrażenie używane do filtrowania wierszy.
dokładność int Kontrola między szybkością a dokładnością. Jeśli nie określono, wartość domyślna to 1. Zobacz Dokładność szacowania obsługiwanych wartości.

Zwraca

Zwraca oszacowanie liczby unikatowych wartości wyrażenia dla wierszy, w których predykat daje wartość true.

Napiwek

dcountif() może zwrócić błąd w przypadkach, gdy wszystkie lub żaden z wierszy nie przekazuje Predicate wyrażenia.

Przykład

W tym przykładzie pokazano, ile typów zdarzeń krytycznych burzy wystąpiło w każdym stanie.

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

Wyświetlona tabela wyników zawiera tylko pierwsze 10 wierszy.

Stan RóżnefatalEvents
KALIFORNIA 12
TEKSAS 12
OKLAHOMA 10
ILLINOIS 9
KANSAS 9
NEW YORK 9
NEW JERSEY 7
WASZYNGTON 7
MICHIGAN 7
MISSOURI 7
... ...

Dokładność szacowania

Ta funkcja używa wariantu algorytmu HyperLogLog (HLL), który wykonuje stochastyczne oszacowanie kardynalności zestawu. Algorytm udostępnia "pokrętło", które może służyć do równoważenia dokładności i czasu wykonywania na rozmiar pamięci:

Dokładność Błąd (%) Liczba pozycji
0 1.6 212
1 0,8 214
2 0,4 216
3 0,28 217
100 0,2 218

Uwaga

Kolumna "liczba wpisów" jest liczbą liczników 1 bajtów w implementacji HLL.

Algorytm zawiera pewne przepisy dotyczące wykonywania doskonałej liczby (błąd zerowy), jeśli kardynalność zestawu jest wystarczająco mała:

  • Gdy poziom dokładności to 1, zwracane są wartości 1000
  • Gdy poziom dokładności to 2, zwracane są wartości 8000

Granica błędu jest probabilistyczna, a nie teoretyczna granica. Wartość jest odchyleniem standardowym rozkładu błędów (sigma), a 99,7% oszacowań będzie miało względny błąd poniżej 3 x sigma.

Na poniższej ilustracji przedstawiono funkcję rozkładu prawdopodobieństwa błędu szacowania względnego w procentach dla wszystkich obsługiwanych ustawień dokładności:

Wykres przedstawiający rozkład błędów hll.