Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argMax

Alias : max_by

argMax

Introduit dans : v1.1.0

Calcule la valeur arg correspondant à la valeur val maximale. S'il existe plusieurs lignes dont la valeur val est égale au maximum, la valeur arg associée renvoyée n'est pas déterministe. arg et max se comportent tous deux comme des fonctions d'agrégation : ils ignorent Null pendant le traitement et renvoient des valeurs non Null si de telles valeurs sont disponibles.

Voir aussi

Syntaxe

argMax(arg, val)

Alias : max_by

Arguments

Valeur renvoyée

Renvoie la valeur de arg correspondant à la valeur maximale de val. Le type renvoyé correspond à celui de arg.

Exemples

Utilisation de base

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             │
└──────────────────────┘

Exemple détaillé avec gestion des valeurs 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 │
└──────────────┴────────┘

Utilisation de Tuple dans les arguments

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