Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argMax

الاسم البديل: max_by

argMax

أُضيف في: v1.1.0

يحسب قيمة arg المقابلة لأكبر قيمة لـ val. وإذا وُجدت عدة صفوف تكون فيها val هي القيمة القصوى نفسها، فإن قيمة arg المرتبطة التي ستُعاد ليست حتمية. ويعمل كلٌّ من arg وmax كـ دوال تجميعية، كما أن كليهما يتخطى Null أثناء المعالجة ويُرجع قيمًا غير Null إذا كانت هذه القيم متاحة.

انظر أيضًا

البنية

argMax(arg, val)

الأسماء البديلة: max_by

الوسائط

القيمة المُعادة

تعيد قيمة arg المقابلة لأكبر قيمة في val. النوع مطابق لنوع arg.

أمثلة

الاستخدام الأساسي

CREATE TABLE salary
(
    user String,
    salary UInt32
)
ENGINE = Memory AS
SELECT *
FROM VALUES(('worker', 1000), ('manager', 3000), ('director', 5000));

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, (b, a))─┐
│ c                 │
└───────────────────┘
Navigation