Freigeben über


max_by-Aggregatfunktion

Gilt für:durch Häkchen mit „Ja“ markiert Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime

Gibt den Wert eines Ausdrucks (expr1) zurück, für den der Wert von expr2 in einer Gruppe maximal ist

Syntax

max_by(expr1, expr2) [FILTER ( WHERE cond ) ]

Diese Funktion kann auch mithilfe der -Klausel als OVER aufgerufen werden.

Argumente

  • expr1: Ein Ausdruck beliebigen Typs
  • expr2: Ein Ausdruck eines Typs, der geordnet werden kann.
  • cond: Ein optionaler boolescher Ausdruck, der die für die Aggregation verwendeten Zeilen filtert.

Gibt zurück

Der Ergebnistyp stimmt mit dem Typ von expr1 überein.

Wenn STRING.

Diese Funktion ist nicht deterministisch, wenn expr2 innerhalb der Gruppe nicht eindeutig ist.

Hinweis

Bei bestimmten STRING Sortierungen, wie z. B. UTF8_LCASE, kann das Ergebnis auch nicht deterministisch sein.

Beispiele

> SELECT max_by(x, y) FROM VALUES (('a', 10)), (('b', 50)), (('c', 20)) AS tab(x, y);
 b

> SELECT max_by(x, y COLLATE UTF8_LCASE) FROM VALUES (('a', 'X')), (('b', 'x')), (('c', 'v')) AS tab(x, y);
 a (or b)