Sdílet prostřednictvím


approx_top_k agregační funkce

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano Databricks Runtime 10.4 LTS a 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 STRING, BOOLEAN, DATE, TIMESTAMP nebo číselného typu.
  • k: Volitelný literál INTEGER větší než 0. Pokud k není zadán, je výchozí 5hodnota .
  • maxItemsTracked: Volitelný literál INTEGER větší nebo roven k. Pokud maxItemsTracked není zadán, je výchozí 10000hodnota .
  • 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 se seřadí 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é položky, budou poskytovat přesné počty položek. Výsledky zahrnují hodnoty NULL jako samostatnou položku ve výsledcích.

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