Passer au contenu principal

argAndMax

Introduit dans : v1.1.0 Calcule les valeurs arg et val correspondant à la valeur val maximale. S’il existe plusieurs lignes dont la valeur val est égale au maximum, le choix de arg et val renvoyé parmi les valeurs associées n’est pas déterministe. Les deux parties, arg et max, se comportent comme des fonctions d’agrégation : elles ignorent Null pendant le traitement et renvoient des valeurs non Null si des valeurs non Null sont disponibles.
La seule différence avec argMax est que argAndMax renvoie à la fois l’argument et la valeur.
Voir aussi Syntaxe
argAndMax(arg, val)
Arguments Valeur renvoyée Renvoie un tuple contenant la valeur arg correspondant à la valeur val maximale, ainsi que la valeur val maximale. Tuple Exemples Utilisation de base
Query
SELECT argAndMax(user, salary) FROM salary;
Response
┌─argAndMax(user, salary)─┐
│ ('director',5000)       │
└─────────────────────────┘
Exemple plus complet avec gestion 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 │
└──────────────┴─────────────────┴────────┘
Utilisation de Tuple dans les arguments
Query
SELECT argAndMax(a, (b,a)) FROM test;
Response
┌─argAndMax(a, (b, a))─┐
│ ('c',(2,'c'))        │
└──────────────────────┘
Voir aussi
Dernière modification le 25 juin 2026