Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Databricks SQL
Databricks Runtime 10.4 LTS e superior
Devolve os principais k
valores de item que ocorrem com mais frequência em um expr
juntamente com suas contagens aproximadas.
Sintaxe
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Esta função também pode ser invocada como uma função de janela usando a cláusula OVER
.
Argumentos
-
expr
: Uma expressão de STRING, BOOLEANO, DATA, TIMESTAMP, ou de tipo numérico. -
k
: Um literal inteiro opcional maior que 0. Sek
não for especificado, o padrão será5
. -
maxItemsTracked
: Um literal inteiro opcional maior ou igual ak
. SemaxItemsTracked
não for especificado, o padrão será10000
. -
cond
: Uma expressão booleana opcional filtrando as linhas usadas para agregação.
Devoluções
Os resultados são retornados como uma ARRAY do tipo STRUCT, onde cada STRUCT contém um item
campo para o valor (com seu tipo de entrada original) e um count
campo (do tipo LONG) com o número aproximado de ocorrências. A matriz é classificada por count
decrescente.
A função de agregação retorna os principais valores de k
item que ocorrem com mais freqüência em uma expressão expr
, juntamente com suas contagens aproximadas. O erro em cada contagem pode ser até 2.0 * numRows / maxItemsTracked
onde numRows
está o número total de linhas. Valores mais altos de maxItemsTracked
fornecem melhor precisão ao custo de um maior uso de memória.
As expressões que têm menos de maxItemsTracked
itens distintos produzirão contagens exatas de itens. Os resultados incluem NULL
valores como um item separado nos resultados.
Exemplos
> 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}]