Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argAndMin

argAndMin

導入バージョン: v1.1.0

最小の val 値に対応する argval の値を計算します。 最小値に等しい val を持つ行が複数ある場合、対応する argval のうちどれが返されるかは決定論的ではありません。 argmin はどちらも 集約関数 として動作し、処理中はともに Null をスキップ し、Null でない値が存在する場合は Null でない値を返します。

関連項目

構文

argAndMin(arg, val)

引数

戻り値

最小の val 値に対応する arg 値と、その最小の val 値を含むタプルを返します。Tuple

基本的な使い方

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

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

引数でのTupleの使用

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

関連項目

Navigation