Перейти к основному содержимому
Перейти к основному содержимому

argMin

argMin

Введена в версии: v1.1

Вычисляет значение arg для минимального значения val. Если существует несколько строк с одинаковым минимальным значением val, то выбор возвращаемого связанного значения arg недетерминирован. И arg, и min ведут себя как агрегатные функции, обе пропускают Null в процессе обработки и возвращают значения, отличные от Null, если такие значения есть.

См. также

Синтаксис

argMin(arg, val)

Аргументы

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

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

Примеры

Базовый пример

SELECT argMin(user, salary) FROM salary;
┌─argMin(user, salary)─┐
│ worker               │
└──────────────────────┘

Расширенный пример с обработкой NULL

CREATE TABLE test
(
    a Nullable(String),
    b Nullable(Int64)
)
ENGINE = Memory AS
SELECT *
FROM VALUES((NULL, 0), ('a', 1), ('b', 2), ('c', 2), (NULL, NULL), ('d', NULL));

SELECT argMin(a, b), min(b) FROM test;
┌─argMin(a, b)─┬─min(b)─┐
│ a            │      0 │
└──────────────┴────────┘

Использование типа Tuple в аргументах

SELECT argMin(a, (b, a)), min(tuple(b, a)) FROM test;
┌─argMin(a, tuple(b, a))─┬─min(tuple(b, a))─┐
│ d                      │ (NULL,NULL)      │
└────────────────────────┴──────────────────┘