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