argAndMax
Introducido en: v1.1.0
Calcula los valores arg y val correspondientes al valor máximo de val.
Si hay varias filas con el mismo val máximo, no es determinista cuál de los arg y val asociados se devuelve.
Tanto arg como max se comportan como funciones de agregado: ambos omiten Null durante el procesamiento y devuelven valores distintos de Null si hay valores distintos de Null disponibles.
Ver también
Sintaxis
argAndMax(arg, val)Argumentos
arg— Argumento del que se debe encontrar el valor máximo.const Stringval— El valor máximo.(U)Int8/16/32/64oFloat*oDateoDateTimeoTuple
Valor devuelto
Devuelve una tupla que contiene el valor de arg correspondiente al valor máximo de val y el valor máximo de val. Tuple
Ejemplos
Uso básico
CREATE TABLE salary
(
user String,
salary UInt32
)
ENGINE = Memory AS
SELECT *
FROM VALUES(('worker', 1000), ('manager', 3000), ('director', 5000));
SELECT argAndMax(user, salary) FROM salary;┌─argAndMax(user, salary)─┐
│ ('director',5000) │
└─────────────────────────┘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), argAndMax(a, b), max(b) FROM test;┌─argMax(a, b)─┬─argAndMax(a, b)─┬─max(b)─┐
│ b │ ('b',2) │ 3 │
└──────────────┴─────────────────┴────────┘Uso de Tuple en los argumentos
SELECT argAndMax(a, (b,a)) FROM test;┌─argAndMax(a, (b, a))─┐
│ ('c',(2,'c')) │
└──────────────────────┘Ver también