ClickHouse/docs/ru/sql-reference/aggregate-functions/reference/argmax.md

2.2 KiB
Raw Blame History

toc_priority
106

argMax

Вычисляет значение arg при максимальном значении val. Если есть несколько разных значений arg для максимальных значений val, возвращает первое попавшееся из таких значений.

Если функции передан кортеж, то будет выведен кортеж с максимальным значением val. Удобно использовать для работы с SimpleAggregateFunction.

Синтаксис

argMax(arg, val)

или

argMax(tuple(arg, val))

Аргументы

  • arg — аргумент.
  • val — значение.

Возвращаемое значение

  • значение arg, соответствующее максимальному значению val.

Тип: соответствует типу arg.

Если передан кортеж:

  • кортеж (arg, val) c максимальным значением val и соответствующим ему arg.

Тип: Tuple.

Пример

Исходная таблица:

┌─user─────┬─salary─┐
│ director │   5000 │
│ manager  │   3000 │
│ worker   │   1000 │
└──────────┴────────┘

Запрос:

SELECT argMax(user, salary), argMax(tuple(user, salary), salary), argMax(tuple(user, salary)) FROM salary;

Результат:

┌─argMax(user, salary)─┬─argMax(tuple(user, salary), salary)─┬─argMax(tuple(user, salary))─┐
│ director             │ ('director',5000)                   │ ('director',5000)           │
└──────────────────────┴─────────────────────────────────────┴─────────────────────────────┘