Агрегатная функция 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)