dcount() (funzione di aggregazione)
Si applica a: ✅Microsoft Fabric✅Azure Esplora dati✅ Azure Monitor✅Microsoft Sentinel
Calcola una stima del numero di valori distinti acquisiti da un'espressione scalare nel gruppo di riepilogo.
I valori Null vengono ignorati e non vengono inseriti nel calcolo.
Nota
La funzione di aggregazione dcount()
è utile principalmente per stimare la cardinalità di enormi set. Scambia l'accuratezza per le prestazioni e può restituire un risultato che varia tra le esecuzioni. L'ordine degli input può avere un effetto sull'output.
Sintassi
dcount
(
expr[,
accuratezza])
Altre informazioni sulle convenzioni di sintassi.
Parametri
Nome | Digita | Obbligatorio | Descrizione |
---|---|---|---|
expr | string |
✔️ | Input i cui valori distinti devono essere conteggiati. |
accuratezza | int |
Valore che definisce l'accuratezza della stima richiesta. Il valore predefinito è 1 . Vedere Accuratezza della stima per i valori supportati. |
Valori restituiti
Restituisce una stima del numero di valori distinti di expr nel gruppo.
Esempio
Questo esempio mostra il numero di tipi di eventi storm che si sono verificati in ogni stato.
StormEvents
| summarize DifferentEvents=dcount(EventType) by State
| order by DifferentEvents
La tabella dei risultati mostrata include solo le prime 10 righe.
Provincia | Eventi diversi |
---|---|
TEXAS | 27 |
CALIFORNIA | 26 |
PENNSYLVANIA | 25 |
GEORGIA | 24 |
ILLINOIS | 23 |
MARYLAND | 23 |
NORTH CAROLINA | 23 |
MICHIGAN | 22 |
FLORIDA | 22 |
OREGON | 21 |
KANSAS | 21 |
... | ... |
Accuratezza della stima
Questa funzione usa una variante dell'algoritmo HyperLogLog (HLL), che esegue una stima stocastica della cardinalità set. L'algoritmo fornisce una "manopola" che può essere usata per bilanciare l'accuratezza e il tempo di esecuzione in base alle dimensioni della memoria:
Precisione | Errori (%) | Numero di voci |
---|---|---|
0 | 1.6 | 212 |
1 | 0,8 | 214 |
2 | 0.4 | 216 |
3 | 0.28 | 217 |
4 | 0.2 | 218 |
Nota
La colonna "Numero di voci" corrisponde al numero di contatori di 1 byte nell'implementazione di HLL.
L'algoritmo include alcune clausole per eseguire un conteggio perfetto (zero errori) se la cardinalità del set è sufficientemente piccola:
- Se il livello di accuratezza è
1
, vengono restituiti 1000 valori - Se il livello di accuratezza è
2
, vengono restituiti 8000 valori
Il limite di errore è probabilistico, non teorico. Il valore è la deviazione standard della distribuzione degli errori (sigma) e il 99,7% delle stime avrà un errore relativo inferiore a 3 x sigma.
L'immagine seguente mostra la funzione di distribuzione delle probabilità di errore relativo nella stima, in percentuali, per tutte le impostazioni di accuratezza supportate: