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

66 lines
2.2 KiB
Markdown
Raw Normal View History

---
toc_priority: 106
---
# argMax {#agg-function-argmax}
2021-02-05 08:15:11 +00:00
Вычисляет значение `arg` при максимальном значении `val`. Если есть несколько разных значений `arg` для максимальных значений `val`, возвращает первое попавшееся из таких значений.
2021-02-05 08:15:11 +00:00
Если функции передан кортеж, то будет выведен кортеж с максимальным значением `val`. Удобно использовать для работы с [SimpleAggregateFunction](../../../sql-reference/data-types/simpleaggregatefunction.md).
2021-02-05 08:15:11 +00:00
**Синтаксис**
``` sql
argMax(arg, val)
```
или
``` sql
argMax(tuple(arg, val))
```
**Аргументы**
2021-02-05 08:15:11 +00:00
- `arg` — аргумент.
- `val` — значение.
**Возвращаемое значение**
- значение `arg`, соответствующее максимальному значению `val`.
2021-02-05 08:15:11 +00:00
Тип: соответствует типу `arg`.
Если передан кортеж:
- кортеж `(arg, val)` c максимальным значением `val` и соответствующим ему `arg`.
2021-02-05 08:15:11 +00:00
Тип: [Tuple](../../../sql-reference/data-types/tuple.md).
**Пример**
2021-02-06 10:23:57 +00:00
Исходная таблица:
2021-02-05 08:15:11 +00:00
``` text
┌─user─────┬─salary─┐
│ director │ 5000 │
│ manager │ 3000 │
│ worker │ 1000 │
└──────────┴────────┘
```
Запрос:
``` sql
SELECT argMax(user, salary), argMax(tuple(user, salary), salary), argMax(tuple(user, salary)) FROM salary;
2021-02-05 08:15:11 +00:00
```
Результат:
``` text
┌─argMax(user, salary)─┬─argMax(tuple(user, salary), salary)─┬─argMax(tuple(user, salary))─┐
│ director │ ('director',5000) │ ('director',5000) │
└──────────────────────┴─────────────────────────────────────┴─────────────────────────────┘
2021-02-05 08:15:11 +00:00
```