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

argMax

argMax

引入版本:v1.1

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

另请参阅

语法

argMax(arg, val)

参数

返回值

返回与最大 val 值对应的 arg 值。类型与 arg 类型相同。

示例

基本用法

SELECT argMax(user, salary) FROM salary;
┌─argMax(user, salary)─┐
│ director             │
└──────────────────────┘

带有 NULL 处理的扩展示例

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), max(b) FROM test;
┌─argMax(a, b)─┬─max(b)─┐
│ b            │      3 │
└──────────────┴────────┘

在参数中使用 Tuple

SELECT argMax(a, (b,a)) FROM test;
┌─argMax(a, tuple(b, a))─┐
│ c                      │
└────────────────────────┘