الوصف
يمكن تطبيق المُركِّب ForEach
على الدالة التجميعية sum لتحويلها من دالة تجميعية
تعمل على قيم الصفوف إلى دالة تجميعية تعمل على
أعمدة المصفوفات، بحيث يُطبَّق التجميع على كل عنصر في المصفوفة عبر الصفوف.
مثال على الاستخدام
في هذا المثال، سنستخدم مجموعة البيانات hits المتاحة في SQL playground.
يحتوي جدول hits على عمود باسم isMobile من النوع UInt8، ويمكن أن تكون قيمته
0 لأجهزة سطح المكتب أو 1 للأجهزة المحمولة:
SELECT EventTime, IsMobile FROM metrica.hits ORDER BY rand() LIMIT 10سنستخدم دالة sumForEach من نوع aggregate مُركِّب لتحليل كيفية
اختلاف الزيارات بين أجهزة سطح المكتب والأجهزة المحمولة بحسب ساعة اليوم. انقر على زر play
أدناه لتشغيل الاستعلام بشكل تفاعلي:
SELECT
toHour(EventTime) AS hour_of_day,
-- استخدم sumForEach لعدّ زيارات أجهزة سطح المكتب والأجهزة المحمولة في خطوة واحدة
sumForEach([
IsMobile = 0, -- زيارات أجهزة سطح المكتب (IsMobile = 0)
IsMobile = 1 -- زيارات الأجهزة المحمولة (IsMobile = 1)
]) AS device_counts
FROM metrica.hits
GROUP BY hour_of_day
ORDER BY hour_of_day;