Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:
Databricks SQL
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. Pokudknení zadán, je výchozí hodnota5. -
maxItemsTracked: Volitelný literál INTEGER větší nebo rovenk. PokudmaxItemsTrackednení zadán, je výchozí hodnota10000. -
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
- APPROX_TOP_K_NON_POSITIVE_ARG
- MAXIMÁLNÍ POČET POLOŽEK SLEDOVANÝCH V APPROX_TOP_K PŘEKRAČUJE LIMIT
- MAX_POČET_SLEDOVANÝCH_POLOŽEK_TOP_K_MENŠÍ_NEŽ_K
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}]