approx_top_k
função agregar
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 OVER
cláusula.
Argumentos
expr
: Uma expressão de STRING, BOOLEANO, DATA, CARIMBO DE DATA/HORA ou 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
fornecer melhor precisão ao custo de maior uso de memória.
As expressões que têm menos itens distintos produzirão contagens exatas de maxItemsTracked
itens. Os resultados incluem NULL
valores como item próprio 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}]