الانتقال إلى المحتوى الرئيسي

argAndMax

قُدِّم في: v1.1.0 يحسب قيمة arg وقيمة val عند أكبر قيمة لـ val. إذا كانت هناك عدة صفوف لها القيمة القصوى نفسها لـ val، فإن تحديد أيٍّ من arg وval المرتبطين ستتم إعادته غير حتمي. يتصرف كلٌّ من الجزأين arg وmax باعتبارهما دالتين تجميعيتين، كما أن كليهما يتجاهل Null أثناء المعالجة ويُرجع قيماً غير Null إذا كانت متاحة.
الفرق الوحيد عن argMax هو أن argAndMax يعيد كلاً من الوسيطة والقيمة.
انظر أيضًا البنية
argAndMax(arg, val)
الوسائط القيمة المُعادة تعيد قيمة من النوع Tuple تحتوي على قيمة arg المقابلة لأكبر قيمة val، وأكبر قيمة val. Tuple أمثلة الاستخدام الأساسي
Query
SELECT argAndMax(user, salary) FROM salary;
Response
┌─argAndMax(user, salary)─┐
│ ('director',5000)       │
└─────────────────────────┘
مثال موسّع مع معالجة 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), argAndMax(a, b), max(b) FROM test;
Response
┌─argMax(a, b)─┬─argAndMax(a, b)─┬─max(b)─┐
│ b            │ ('b',2)         │      3 │
└──────────────┴─────────────────┴────────┘
استخدام Tuple ضمن المعاملات
Query
SELECT argAndMax(a, (b,a)) FROM test;
Response
┌─argAndMax(a, (b, a))─┐
│ ('c',(2,'c'))        │
└──────────────────────┘
انظر أيضًا
آخر تعديل في ٢٩ يونيو ٢٠٢٦