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

argAndMin

導入バージョン: v1.1.0 最小の val 値に対応する argval の値を計算します。 最小値に等しい val を持つ行が複数ある場合、対応する argval のうちどれが返されるかは決定論的ではありません。 argmin はどちらも 集約関数 として動作し、処理中はともに Null をスキップ し、Null でない値が存在する場合は Null でない値を返します。
argMin との唯一の違いは、argAndMin が引数と値の両方を返すことです。
関連項目 構文
argAndMin(arg, val)
引数 戻り値 最小の val 値に対応する arg 値と、その最小の val 値を含むタプルを返します。Tuple 基本的な使い方
Query
SELECT argAndMin(user, salary) FROM salary;
Response
┌─argAndMin(user, salary)─┐
│ ('worker',1000)         │
└─────────────────────────┘
NULL処理を含む拡張例
Query
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;
Response
┌─argMin(a, b)─┬─argAndMin(a, b)─┬─min(b)─┐
│ a            │ ('a',1)         │      0 │
└──────────────┴─────────────────┴────────┘
引数でのTupleの使用
Query
SELECT argAndMin(a, (b, a)), min(tuple(b, a)) FROM test;
Response
┌─argAndMin(a, (b, a))─┬─min((b, a))─┐
│ ('a',(1,'a'))        │ (0,NULL)    │
└──────────────────────┴─────────────┘
関連項目
最終更新日 2026年6月10日