Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argMax

Alias: max_by

argMax

Introducido en: v1.1.0

Calcula el valor de arg correspondiente al valor máximo de val. Si hay varias filas con el mismo val máximo, no es determinista cuál de los arg asociados se devuelve. Tanto arg como max se comportan como funciones de agregación: ambas omiten Null durante el procesamiento y devuelven valores distintos de Null si hay valores distintos de Null disponibles.

Ver también

Sintaxis

argMax(arg, val)

Alias: max_by

Argumentos

Valor devuelto

Devuelve el valor de arg que corresponde al valor máximo de val. El tipo coincide con el de arg.

Ejemplos

Uso básico

CREATE TABLE salary
(
    user String,
    salary UInt32
)
ENGINE = Memory AS
SELECT *
FROM VALUES(('worker', 1000), ('manager', 3000), ('director', 5000));

SELECT argMax(user, salary) FROM salary;
┌─argMax(user, salary)─┐
│ director             │
└──────────────────────┘

Ejemplo ampliado con tratamiento de NULL

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

SELECT argMax(a, b), max(b) FROM test;
┌─argMax(a, b)─┬─max(b)─┐
│ b            │      3 │
└──────────────┴────────┘

Uso de Tuple en los argumentos

SELECT argMax(a, (b,a)) FROM test;
┌─argMax(a, (b, a))─┐
│ c                 │
└───────────────────┘
Navigation