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
arg— Argumento para el que se busca el valor máximo.const Stringval— El valor máximo.(U)Int8/16/32/64oFloat*oDateoDateTimeoTuple
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 │
└───────────────────┘