approx_top_k statistische functie

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime 10.4 LTS en hoger

Retourneert de k meest voorkomende itemwaarden in een expr , samen met de geschatte aantallen.

Syntaxis

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

Deze functie kan ook worden aangeroepen als een vensterfunctie met behulp van de OVER component.

Argumenten

  • expr: Een expressie van TEKENREEKS, BOOLEAANSE WAARDE, DATUM, TIJDSTEMPEL of numeriek type.
  • k: Een optioneel geheel getal dat groter is dan 0. Als k dit niet is opgegeven, wordt deze standaard ingesteld op 5.
  • maxItemsTracked: Een optionele letterlijke geheel getal groter dan of gelijk aan k. Als maxItemsTracked dit niet is opgegeven, wordt deze standaard ingesteld op 10000.
  • cond: Een optionele Boole-expressie die de rijen filtert die worden gebruikt voor aggregatie.

Retouren

Resultaten worden geretourneerd als matrix van het type STRUCT, waarbij elke STRUCT een item veld bevat voor de waarde (met het oorspronkelijke invoertype) en een count veld (van het type LONG) met het geschatte aantal exemplaren. De matrix wordt gesorteerd op count aflopend.

De statistische functie retourneert de k meest voorkomende itemwaarden in een expressie expr , samen met de geschatte aantallen. De fout in elk aantal kan maximaal 2.0 * numRows / maxItemsTracked het numRows totale aantal rijen zijn. Hogere waarden bieden maxItemsTracked een betere nauwkeurigheid ten koste van een verhoogd geheugengebruik. Expressies met minder dan maxItemsTracked afzonderlijke items leveren exacte aantallen items op. Resultaten bevatten NULL waarden als hun eigen item in de resultaten.

Voorbeelden

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