メインコンテンツへスキップ
メインコンテンツへスキップ

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