approx_top_k
funkcja agregacji
Dotyczy: Databricks SQL
Databricks Runtime 10.4 LTS i nowsze
Zwraca k
najczęściej występujące elementy values w expr
razem z ich przybliżonymi liczbami wystąpień.
Składnia
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Tę funkcję można również wywołać jako funkcję window przy użyciu klauzuli OVER
.
Argumenty
-
expr
: wyrażenie typu STRING, BOOLEAN, DATE, TIMESTAMP lub numeryczne. -
k
: opcjonalny literał INTEGER większy niż 0. Jeślik
nie zostanie określony, domyślnie ma wartość5
. -
maxItemsTracked
: opcjonalny literał INTEGER większy lub równyk
. JeślimaxItemsTracked
nie zostanie określony, domyślnie ma wartość10000
. -
cond
: opcjonalne wyrażenie logiczne filtrujące wiersze używane do agregacji.
Zwraca
Wyniki są zwracane jako tablica typu STRUCT, where każda struktura zawiera pole item
dla wartości (z oryginalnym typem wejściowym) i pole count
(typu LONG) z przybliżoną liczbą wystąpień. Tablica jest sortowana malejąco count
.
Funkcja agregacji zwraca k
najczęściej występujący element values w wyrażeniu expr
wraz z jego przybliżoną liczbą wystąpień. Błąd w każdej liczbie może być maksymalnie 2.0 * numRows / maxItemsTracked
wherenumRows
to całkowita liczba wierszy. Wyższe wartości values i maxItemsTracked
zapewniają lepszą dokładność kosztem zwiększonego użycia pamięci.
Wyrażenia, które mają mniej niż maxItemsTracked
odrębne elementy, będą zwracać dokładne liczby elementów. Wyniki obejmują NULL
values jako własny element w wynikach.
Przykłady
> 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}]