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

argMax

導入バージョン: v1.1.0 最大の val 値に対応する arg 値を計算します。最大値の val を持つ行が複数ある場合、対応する arg のうちどれが返されるかは決定論的ではありません。 arg 側と max 側はいずれも 集約関数 として動作します。どちらも処理時に Null をスキップ し、Null でない値が存在する場合は Null でない値を返します。 関連項目 構文
argMax(arg, val)
引数 戻り値 最大の val に対応する arg の値を返します。型は arg の型と同じです。 基本的な使い方
Query
SELECT argMax(user, salary) FROM salary;
Response
┌─argMax(user, salary)─┐
│ director             │
└──────────────────────┘
NULL処理を含む拡張例
Query
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;
Response
┌─argMax(a, b)─┬─max(b)─┐
│ b            │      3 │
└──────────────┴────────┘
引数でのTupleの使用
Query
SELECT argMax(a, (b,a)) FROM test;
Response
┌─argMax(a, tuple(b, a))─┐
│ c                      │
└────────────────────────┘
最終更新日 2026年6月10日