Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argAndMin

argAndMin

Introduit dans : v1.1.0

Calcule les valeurs arg et val correspondant à la valeur minimale de val. S’il existe plusieurs lignes dont val est égal au minimum, la paire arg/val associée qui est renvoyée n’est pas déterministe. Les deux composantes, arg et min, se comportent comme des fonctions d’agrégation : elles ignorent Null lors du traitement et renvoient des valeurs non Null si de telles valeurs sont disponibles.

Voir aussi

Syntaxe

argAndMin(arg, val)

Arguments

Valeur renvoyée

Renvoie un tuple contenant la valeur de arg correspondant à la valeur minimale de val, ainsi que cette valeur minimale de val. Tuple

Exemples

Utilisation de base

CREATE TABLE salary
(
    user String,
    salary UInt32
)
ENGINE = Memory AS
SELECT *
FROM VALUES(('worker', 1000), ('manager', 3000), ('director', 5000));

SELECT argAndMin(user, salary) FROM salary;
┌─argAndMin(user, salary)─┐
│ ('worker',1000)         │
└─────────────────────────┘

Exemple détaillé avec gestion 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), argAndMin(a, b), min(b) FROM test;
┌─argMin(a, b)─┬─argAndMin(a, b)─┬─min(b)─┐
│ a            │ ('a',1)         │      0 │
└──────────────┴─────────────────┴────────┘

Utilisation de Tuple dans les arguments

SELECT argAndMin(a, (b, a)), min(tuple(b, a)) FROM test;
┌─argAndMin(a, (b, a))─┬─min((b, a))─┐
│ ('a',(1,'a'))        │ (0,NULL)    │
└──────────────────────┴─────────────┘

Voir aussi

Navigation