Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argAndMax

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

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

Navigation