approx_top_k agregační funkce

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 10.4 LTS nebo vyšší

Vrátí nejvyšší k nejčastěji se vyskytující hodnoty položek v expr spolu s jejich přibližnými počty.

Syntaxe

approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]

Tuto funkci lze také vyvolat jako funkci okna pomocí klauzule OVER.

Argumenty

  • expr: Výraz typu STRING, BOOLEAN, DATE, TIMESTAMP nebo číselného.
  • k: Volitelný literál INTEGER větší než 0. Pokud k není zadán, je výchozí hodnota 5.
  • maxItemsTracked: Volitelný literál INTEGER větší nebo roven k. Pokud maxItemsTracked není zadán, je výchozí hodnota 10000.
  • cond: Volitelný logický výraz filtrující řádky použité pro agregaci.

Návraty

Výsledky se vrací jako pole typu STRUCT, kde každá struktura obsahuje pole item pro hodnotu (s původním vstupním typem) a pole count (typu LONG) s přibližným počtem výskytů. Pole je seřazeno sestupně count.

Agregační funkce vrátí nejvyšší k nejčastěji se vyskytující hodnoty položek ve výrazu expr spolu s jejich přibližnými počty. Chyba v každém počítání může dosahovat až 2.0 * numRows / maxItemsTracked, kde numRows je celkový počet řádků. Vyšší hodnoty maxItemsTracked poskytují vyšší přesnost za cenu zvýšeného využití paměti. Výrazy, které mají méně než maxItemsTracked odlišných položek, znázorňují přesné počty položek. Výsledky zahrnují hodnoty NULL jako samostatnou položku ve výsledcích.

Běžné chybové podmínky

Příklady

> 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}]