跳转到主内容
跳转到主内容

argMin

argMin

引入版本:v1.1

计算最小 val 值所对应的 arg 值。如果存在多行具有相同的最小 val 值,则返回哪一个关联的 arg 值是非确定性的。 argmin 这两部分都作为聚合函数工作,在处理过程中都会跳过 Null,并在存在非 Null 值时返回非 Null 值。

另请参阅

语法

argMin(arg, val)

参数

返回值

返回与最小 val 值相对应的 arg 值。类型与 arg 的类型一致。

示例

基础用法

SELECT argMin(user, salary) FROM salary;
┌─argMin(user, salary)─┐
│ worker               │
└──────────────────────┘

包含 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 │
└──────────────┴────────┘

在参数中使用 Tuple 类型

SELECT argMin(a, (b, a)), min(tuple(b, a)) FROM test;
┌─argMin(a, tuple(b, a))─┬─min(tuple(b, a))─┐
│ d                      │ (NULL,NULL)      │
└────────────────────────┴──────────────────┘