Saltar al contenido principal

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.
La única diferencia con argMax es que argAndMax devuelve tanto el argumento como el valor.
Ver también Sintaxis
argAndMax(arg, val)
Argumentos 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
Query
SELECT argAndMax(user, salary) FROM salary;
Response
┌─argAndMax(user, salary)─┐
│ ('director',5000)       │
└─────────────────────────┘
Ejemplo ampliado con tratamiento de NULL
Query
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;
Response
┌─argMax(a, b)─┬─argAndMax(a, b)─┬─max(b)─┐
│ b            │ ('b',2)         │      3 │
└──────────────┴─────────────────┴────────┘
Uso de Tuple en los argumentos
Query
SELECT argAndMax(a, (b,a)) FROM test;
Response
┌─argAndMax(a, (b, a))─┐
│ ('c',(2,'c'))        │
└──────────────────────┘
Véase también
Última modificación el 10 de junio de 2026