dcountif() (funkcja agregacji)
Dotyczy: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
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: