approx_top_k
funkcja agregacji
Dotyczy: Databricks SQL Databricks Runtime 10.4 LTS i nowsze
Zwraca najczęściej k
występujące wartości elementów w elemencie expr
wraz z ich przybliżonymi liczbami.
Składnia
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Tę funkcję można również wywołać jako funkcję okna 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, gdzie każda struktura zawiera item
pole dla wartości (z oryginalnym typem wejściowym) i count
pole (typu LONG) z przybliżoną liczbą wystąpień. Tablica jest sortowana malejąco count
.
Funkcja agregacji zwraca najczęściej k
występujące wartości elementów w wyrażeniu expr
wraz z ich przybliżonymi liczbami. Błąd w każdej liczbie może być do 2.0 * numRows / maxItemsTracked
tego, gdzie numRows
jest całkowita liczba wierszy. Wyższe wartości 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 zawierają NULL
wartości 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}]