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í nejčastěji k se vyskytující hodnoty položek společně expr 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í OVER klauzule.

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 vrátí jako POLE typu STRUCT, kde každá struktura obsahuje item pole pro hodnotu (s původním vstupním typem) a count pole (typu LONG) s přibližným počtem výskytů. Pole se seřadí sestupně count .

Agregační funkce vrátí 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čtu může být až tam, kde 2.0 * numRows / maxItemsTracked 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 obsahují NULL hodnoty jako vlastní 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}]