الانتقال إلى المحتوى الرئيسي

الوصف

يمكن تطبيق المُركِّب Array على الدالة uniq لحساب العدد التقريبي للعناصر الفريدة عبر جميع المصفوفات، باستخدام دالة المُركِّب التجميعي uniqArray. تكون الدالة uniqArray مفيدة عندما تحتاج إلى حساب العناصر الفريدة عبر عدة مصفوفات ضمن مجموعة بيانات. وهي مكافئة لاستخدام uniq(arrayJoin())، حيث تعمل arrayJoin أولًا على تسطيح المصفوفات، ثم تحسب uniq العناصر الفريدة.

مثال على الاستخدام

في هذا المثال، سنستخدم مجموعة بيانات نموذجية عن اهتمامات المستخدمين عبر فئات مختلفة لتوضيح كيفية عمل uniqArray. وسنقارنها مع uniq(arrayJoin()) لبيان الفرق في احتساب العناصر الفريدة.
Query
CREATE TABLE user_interests
(
    user_id UInt32,
    interests Array(String)
) ENGINE = Memory;

INSERT INTO user_interests VALUES
    (1, ['reading', 'gaming', 'music']),
    (2, ['gaming', 'sports', 'music']),
    (3, ['reading', 'cooking']);

SELECT 
    uniqArray(interests) AS unique_interests_total,
    uniq(arrayJoin(interests)) AS unique_interests_arrayJoin
FROM user_interests;
تحسب الدالة uniqArray العناصر الفريدة عبر جميع المصفوفات مجتمعة، على نحو مماثل لـ uniq(arrayJoin()). في هذا المثال:
  • تُرجع uniqArray القيمة 5 لأن هناك 5 اهتمامات فريدة لدى جميع المستخدمين: ‘reading’، ‘gaming’، ‘music’، ‘sports’، ‘cooking’
  • تُرجع uniq(arrayJoin()) أيضًا القيمة 5، مما يوضح أن كلتا الدالتين تحسبان العناصر الفريدة عبر جميع المصفوفات
Response
   ┌─unique_interests_total─┬─unique_interests_arrayJoin─┐
1. │                      5 │                          5 │
   └────────────────────────┴────────────────────────────┘

انظر أيضًا

آخر تعديل في ٢٩ يونيو ٢٠٢٦