الانتقال إلى المحتوى الرئيسي
الاسم البديل: max_by

argMax

أُضيف في: v1.1.0 يحسب قيمة arg المقابلة لأكبر قيمة لـ val. وإذا وُجدت عدة صفوف تكون فيها val هي القيمة القصوى نفسها، فإن قيمة arg المرتبطة التي ستُعاد ليست حتمية. ويعمل كلٌّ من arg وmax كـ دوال تجميعية، كما أن كليهما يتخطى Null أثناء المعالجة ويُرجع قيمًا غير Null إذا كانت هذه القيم متاحة. انظر أيضًا البنية
argMax(arg, val)
الأسماء البديلة: max_by الوسائط القيمة المُعادة تعيد قيمة arg المقابلة لأكبر قيمة في val. النوع مطابق لنوع 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                      │
└────────────────────────┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦