groupArray
قُدِّم في: v1.1.0
ينشئ مصفوفة من قيم الوسائط. يمكن إضافة القيم إلى المصفوفة بأي ترتيب (غير محدد).
يقيّد الإصدار الثاني (باستخدام المعلَمة max_size) حجم المصفوفة الناتجة إلى max_size عنصرًا. على سبيل المثال، فإن groupArray(1)(x) مكافئ لـ [any(x)].
في بعض الحالات، لا يزال بإمكانك الاعتماد على ترتيب التنفيذ. وينطبق ذلك عندما تأتي SELECT من استعلام فرعي يستخدم ORDER BY، إذا كانت نتيجة الاستعلام الفرعي صغيرة بما يكفي.
تزيل الدالة groupArray قيم NULL من النتيجة.
البنية
groupArray(x)
groupArray(max_size)(x)الأسماء البديلة: array_agg
المعاملات
max_size— اختياري. يحدّ حجم المصفوفة الناتجة إلىmax_sizeمن العناصر.UInt64
الوسيطات
x— قيم الوسيطات المراد تجميعها في مصفوفة.Any
القيمة المُعادة
يعيد مصفوفة من قيم الوسيطات. Array
أمثلة
الاستخدام الأساسي
CREATE TABLE ck (id UInt8, name String) ENGINE = Memory;
INSERT INTO ck VALUES (1, 'zhangsan'), (1, 'lisi'), (2, 'wangwu');
SELECT id, groupArray(10)(name) FROM ck GROUP BY id ORDER BY id;┌─id─┬─groupArray(10)(name)─┐
│ 1 │ ['zhangsan','lisi'] │
│ 2 │ ['wangwu'] │
└────┴──────────────────────┘