Passer au contenu principal
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
Query
SELECT argMax(user, salary) FROM salary;
Response
┌─argMax(user, salary)─┐
│ director             │
└──────────────────────┘
Exemple détaillé avec gestion des valeurs 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), max(b) FROM test;
Response
┌─argMax(a, b)─┬─max(b)─┐
│ b            │      3 │
└──────────────┴────────┘
Utilisation de Tuple dans les arguments
Query
SELECT argMax(a, (b,a)) FROM test;
Response
┌─argMax(a, tuple(b, a))─┐
│ c                      │
└────────────────────────┘
Dernière modification le 25 juin 2026