aggregate
دالة
ينطبق على: Databricks SQL
Databricks Runtime
تجميع العناصر في صفيف باستخدام مجمع مخصص. هذه الدالة هي مرادف لدالة التقليل.
بناء الجملة
aggregate(expr, start, merge [, finish])
الوسيطات
expr
: تعبير صفيف.start
: قيمة أولية من أي نوع.merge
: دالة lambda تستخدم لتجميع العنصر الحالي.finish
: دالة lambda اختيارية تستخدم لإنهاء التجميع.
المرتجعات
يطابق نوع النتيجة نوع النتيجة لدالة finish
lambda إذا كان موجودا أو start
.
تطبيق تعبير على حالة أولية وكافة العناصر في الصفيف، وتقليل هذا إلى حالة واحدة. يتم تحويل الحالة النهائية إلى النتيجة النهائية عن طريق تطبيق دالة finish
.
تأخذ الدالة merge
معلمتين. الأول هو المجمع، والثاني العنصر الذي سيتم تجميعه.
يجب أن يكون المجمع والنتيجة من نوع start
.
تأخذ الدالة الاختيارية finish
معلمة واحدة وترجع النتيجة النهائية.
الأمثلة
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x);
6
> SELECT aggregate(array(1, 2, 3), 0, (acc, x) -> acc + x, acc -> acc * 10);
60
> SELECT aggregate(array(1, 2, 3, 4),
named_struct('sum', 0, 'cnt', 0),
(acc, x) -> named_struct('sum', acc.sum + x, 'cnt', acc.cnt + 1),
acc -> acc.sum / acc.cnt) AS avg
2.5