Alias : min_by
argMin
Introduit dans : v1.1.0
Calcule la valeur arg pour une valeur val minimale. S'il existe plusieurs lignes avec des val égales correspondant au maximum, le arg associé renvoyé n'est pas déterministe.
arg et min 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
argMin(arg, val)Alias : min_by
Arguments
arg— Argument pour lequel trouver la valeur minimale.const Stringval— La valeur minimale.(U)Int8/16/32/64ouFloat*ouDateouDateTimeouTuple
Valeur renvoyée
Renvoie la valeur de arg correspondant à la valeur minimale de val. Le type 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 argMin(user, salary) FROM salary;┌─argMin(user, salary)─┐
│ worker │
└──────────────────────┘Exemple détaillé avec prise en charge de NULL
CREATE TABLE test
(
a Nullable(String),
b Nullable(Int64)
)
ENGINE = Memory AS
SELECT *
FROM VALUES((NULL, 0), ('a', 1), ('b', 2), ('c', 2), (NULL, NULL), ('d', NULL));
SELECT argMin(a, b), min(b) FROM test;┌─argMin(a, b)─┬─min(b)─┐
│ a │ 0 │
└──────────────┴────────┘Utilisation de Tuple dans les arguments
SELECT argMin(a, (b, a)), min(tuple(b, a)) FROM test;┌─argMin(a, (b, a))─┬─min((b, a))─┐
│ a │ (0,NULL) │
└───────────────────┴─────────────┘