Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argMin

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

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