Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

argAndMax

argAndMax

قُدِّم في: v1.1.0

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

انظر أيضًا

البنية

argAndMax(arg, val)

الوسائط

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

تعيد قيمة من النوع Tuple تحتوي على قيمة arg المقابلة لأكبر قيمة من val، وأكبر قيمة من val. Tuple

أمثلة

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

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

SELECT argAndMax(user, salary) FROM salary;
┌─argAndMax(user, salary)─┐
│ ('director',5000)       │
└─────────────────────────┘

مثال موسّع مع معالجة 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), argAndMax(a, b), max(b) FROM test;
┌─argMax(a, b)─┬─argAndMax(a, b)─┬─max(b)─┐
│ b            │ ('b',2)         │      3 │
└──────────────┴─────────────────┴────────┘

استخدام Tuple ضمن المعاملات

SELECT argAndMax(a, (b,a)) FROM test;
┌─argAndMax(a, (b, a))─┐
│ ('c',(2,'c'))        │
└──────────────────────┘

انظر أيضًا

Navigation