Condividi tramite


dcount() (funzione di aggregazione)

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft 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.

Nota

Questa funzione viene usata insieme all'operatore summarize.

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:

Grafico che mostra la distribuzione degli errori hll.