Nota
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare ad accedere o a cambiare directory.
L'accesso a questa pagina richiede l'autorizzazione. Puoi provare a cambiare directory.
Si applica a:
Databricks SQL
Databricks Runtime 10.4 LTS e versioni successive
Restituisce i primi k valori degli elementi che si verificano più frequentemente in un expr insieme ai conteggi approssimativi.
Sintassi
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Questa funzione può anche essere richiamata come funzione finestra usando la clausola OVER.
Argomenti
-
expr: espressione di tipo STRING, BOOLEAN, DATE, TIMESTAMP o numerico. -
k: valore letterale INTEGER facoltativo maggiore di 0. Seknon viene specificato, per impostazione predefinita viene impostato su5. -
maxItemsTracked: valore letterale INTEGER facoltativo maggiore o uguale ak. SemaxItemsTrackednon viene specificato, per impostazione predefinita viene impostato su10000. -
cond: espressione booleana facoltativa che filtra le righe usate per l'aggregazione.
Valori restituiti
I risultati vengono restituiti come MATRICE di tipo STRUCT, dove ogni STRUCT contiene un campo item per il valore (con il tipo di input originale) e un campo count (di tipo LONG) con il numero approssimativo di occorrenze. La matrice viene ordinata in count ordine decrescente.
La funzione di aggregazione restituisce i primi k valori degli elementi più frequenti in un'espressione expr insieme ai conteggi approssimativi. L'errore in ogni conteggio può essere fino a 2.0 * numRows / maxItemsTracked in cui numRows è il numero totale di righe. I valori più elevati di maxItemsTracked offrono una maggiore accuratezza a costi di utilizzo maggiore della memoria.
Le espressioni con meno di maxItemsTracked elementi distinti restituiranno conteggi di elementi esatti. I risultati includono NULL valori come un elemento a sé stante nei risultati.
Esempi
> SELECT approx_top_k(expr) FROM VALUES (0), (0), (1), (1), (2), (3), (4), (4) AS tab(expr);
[{'item':4,'count':2},{'item':1,'count':2},{'item':0,'count':2},{'item':3,'count':1},{'item':2,'count':1}]
> SELECT approx_top_k(expr, 2) FROM VALUES ('a'), ('b'), ('c'), ('c'), ('c'), ('c'), ('d'), ('d') AS tab(expr);
[{'item':'c','count',4},{'item':'d','count':2}]
> SELECT approx_top_k(expr, 10, 100) FROM VALUES (0), (1), (1), (2), (2), (2) AS tab(expr);
[{'item':2,'count':3},{'item':1,'count':2},{'item':0,'count':1}]