Поделиться через


Агрегатная функция max_by

Область применения:флажок Databricks SQL флажок Databricks Runtime

Возвращает значение expr1, связанное с максимальным значением expr2 в группе.

Синтаксис

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

Эту функцию также можно вызвать как функцию окна с помощью предложения OVER.

Аргументы

  • expr1: выражение любого типа.
  • expr2: выражение типа, который может быть упорядочен.
  • cond: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.

Возвраты

Тип результата соответствует типу expr1.

Если STRING.

Эта функция имеет недетерминированное поведение, если expr2 не является уникальным в пределах группы.

Заметка

Для определенных STRING колляций, таких как UTF8_LCASE, результат также может быть недетерминированным.

Примеры

> 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)