Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Gilt für:
Databricks SQL
Databricks Runtime 10.4 LTS und höher
Gibt die k häufigsten Elementwerte in einem Ausdruck (expr) zusammen mit ihrer ungefähren Anzahl zurück.
Syntax
approx_top_k(expr[, k[, maxItemsTracked]]) [FILTER ( WHERE cond ) ]
Diese Funktion kann auch mithilfe der -Klausel als OVER aufgerufen werden.
Argumente
-
expr: Ein Ausdruck des STRING-, BOOLEAN-, DATE-, TIMESTAMP- oder numerischen Typs. -
k: Ein optionales INTEGER-Literal, das größer als 0 ist. Wennknicht angegeben ist, wird standardmäßig5verwendet. -
maxItemsTracked: Ein optionales INTEGER-Literal, das größer als oder gleichkist. WennmaxItemsTrackednicht angegeben ist, wird standardmäßig10000verwendet. -
cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.
Gibt zurück
Ergebnisse werden als ARRAY vom Typ STRUCT zurückgegeben, wobei jedes STRUCT-Element ein item-Feld für den Wert (mit seinem ursprünglichen Eingabetyp) und ein count-Feld (vom Typ LONG) mit der ungefähren Anzahl von Vorkommen enthält. Das Array ist absteigend nach count sortiert.
Die Aggregatfunktion gibt die k am häufigsten vorkommenden Elementwerte in einem Ausdruck expr zusammen mit ihren ungefähren Werten zurück. Der Fehler in jeder Anzahl kann bis zu 2.0 * numRows / maxItemsTracked sein, wobei numRows die Gesamtzahl der Zeilen ist. Höhere Werte von maxItemsTracked bieten eine bessere Genauigkeit auf Kosten einer erhöhten Speicherauslastung.
Ausdrücke, die weniger als maxItemsTracked unterschiedliche Elemente enthalten, ergeben eine genaue Elementanzahl. Ergebnisse enthalten NULL Werte als eigenes Element in den Ergebnissen.
Beispiele
> 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}]