الاسم المستعار: min_by
argMin
أُضيف في: v1.1.0
تحسب قيمة arg المقابلة لأصغر قيمة val. إذا وُجدت عدة صفوف لها قيمة val متساوية وتمثل القيمة القصوى، فإن تحديد أي قيمة arg مرتبطة بها ستُعاد ليس حتميًا.
يتصرف كلٌّ من arg وmin على أنهما دوال تجميعية، وكلاهما يتجاوز Null أثناء المعالجة ويُرجع قيمة غير Null إذا كانت هناك قيم غير Null متاحة.
انظر أيضًا
البنية
argMin(arg, val)الأسماء المستعارة: min_by
الوسيطات
arg— الوسيط المطلوب إيجاد القيمة العظمى له.const Stringval— أصغر قيمة.(U)Int8/16/32/64أوFloat*أوDateأوDateTimeأوTuple
القيمة المُعادة
تُرجِع قيمة arg المقابلة لأصغر قيمة لـ val. النوع مطابق لنوع arg.
أمثلة
الاستخدام الأساسي
CREATE TABLE salary
(
user String,
salary UInt32
)
ENGINE = Memory AS
SELECT *
FROM VALUES(('worker', 1000), ('manager', 3000), ('director', 5000));
SELECT argMin(user, salary) FROM salary;┌─argMin(user, salary)─┐
│ worker │
└──────────────────────┘مثال موسّع مع معالجة NULL
CREATE TABLE test
(
a Nullable(String),
b Nullable(Int64)
)
ENGINE = Memory AS
SELECT *
FROM VALUES((NULL, 0), ('a', 1), ('b', 2), ('c', 2), (NULL, NULL), ('d', NULL));
SELECT argMin(a, b), min(b) FROM test;┌─argMin(a, b)─┬─min(b)─┐
│ a │ 0 │
└──────────────┴────────┘استخدام Tuple في المعاملات
SELECT argMin(a, (b, a)), min(tuple(b, a)) FROM test;┌─argMin(a, (b, a))─┬─min((b, a))─┐
│ a │ (0,NULL) │
└───────────────────┴─────────────┘