الانتقال إلى المحتوى الرئيسي
يمكن تكوين Bitmap بطريقتين: الأولى باستخدام دالة التجميع groupBitmap مع -State، والثانية بإنشاء Bitmap من كائن Array.

bitmapAnd

قُدِّم في: v20.1.0 يحسب الاقتران المنطقي (AND) لخريطتَي bitmap. الصيغة
bitmapAnd(bitmap1, bitmap2)
الوسائط القيمة المُعادة يعيد bitmap يحتوي على البتات الموجودة في كلٍّ من وحدتَي bitmap المُدخلتَين AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─┐
│ [3] │
└─────┘

bitmapAndCardinality

أُضيفت في: v20.1.0 تعيد عدد عناصر ناتج الاقتران المنطقي (AND) بين قيمتَي bitmap. البنية
bitmapAndCardinality(bitmap1, bitmap2)
الوسيطات القيمة المُعادة تعيد عدد البتات المضبوطة في تقاطع كائني الـ bitmap UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   1 │
└─────┘

bitmapAndnot

أُضيف في: v20.1.0 يحسب فرق المجموعتين A AND-NOT B بين خريطتي بت. الصيغة
bitmapAndnot(bitmap1, bitmap2)
الوسيطات القيمة المُعادة يعيد bitmap يحتوي على البتات المضبوطة الموجودة في الـ bitmap الأول وغير الموجودة في الثاني AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res────┐
│ [1, 2] │
└────────┘

bitmapAndnotCardinality

أُضيفت في: v20.1.0 تعيد عدد عناصر ناتج عملية AND-NOT لخريطتي بت. الصيغة
bitmapAndnotCardinality(bitmap1, bitmap2)
الوسائط القيمة المُعادة يعيد عدد البتات المعيّنة في ناتج bitmap1 AND-NOT bitmap2 UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapBuild

أُضيفت في: v20.1.0 تُنشئ bitmap من مصفوفة من الأعداد الصحيحة غير الموقَّعة. وهي عكس الدالة bitmapToArray. الصيغة
bitmapBuild(array)
المعاملات
  • array — مصفوفة من الأعداد الصحيحة غير الموقَّعة. Array(UInt*)
القيمة المُعادة يعيد bitmap من المصفوفة المُدخلة AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapBuild([1, 2, 3, 4, 5]) AS res, toTypeName(res);
Response
┌─res─┬─toTypeName(bitmapBuild([1, 2, 3, 4, 5]))─────┐
│     │ AggregateFunction(groupBitmap, UInt8)        │
└─────┴──────────────────────────────────────────────┘

bitmapCardinality

أُضيف في: v20.1.0 يعيد عدد البتات المعيّنة (cardinality) في bitmap. الصيغة
bitmapCardinality(bitmap)
الوسائط القيمة المعادة ترجع عدد البتات المعيّنة في bitmap UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapCardinality(bitmapBuild([1, 3, 3, 5, 7, 7])) AS res
Response
┌─res─┐
│   4 │
└─────┘

bitmapContains

أُضيف في: v20.1.0 يتحقق مما إذا كانت الخريطة النقطية تحتوي على عنصر معيّن. الصيغة
bitmapContains(bitmap, value)
الوسيطات القيمة المُعادة تُرجع 1 إذا كانت bitmap تحتوي على القيمة المحددة، وإلا فتُرجع 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT bitmapContains(bitmapBuild([1, 2, 3]), 2) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAll

أُضيفت في: v20.1.0 يتحقق مما إذا كانت bitmap الأولى تحتوي على جميع البتات المفعّلة في bitmap الثانية. الصياغة
bitmapHasAll(bitmap1, bitmap2)
الوسيطات القيمة المُعادة تُرجِع 1 إذا كانت جميع البتات المضبوطة في الـ bitmap الثانية موجودة في الـ bitmap الأولى، وإلا فتُرجِع 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT bitmapHasAll(bitmapBuild([1, 2, 3]), bitmapBuild([2, 3])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAny

أُضيف في: v20.1.0 يتحقق مما إذا كانت الـ bitmap الأولى تحتوي على أي بتات مضبوطة من الـ bitmap الثانية. الصيغة
bitmapHasAny(bitmap1, bitmap2)
الوسيطات القيمة المُعادة تُرجع 1 إذا وُجدت أي بتات من bitmap الثانية في bitmap الأولى، وإلا فتُرجع 0 UInt8 أمثلة مثال على الاستخدام
Query
SELECT bitmapHasAny(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapMax

أُضيف في: v20.1.0 يعيد موضع أكبر bit مُعيَّن في bitmap، أو 0 إذا كانت bitmap فارغة. البنية
bitmapMax(bitmap)
الوسيطات القيمة المُعادة يُرجع موضع أعلى بت مضبوط في الـbitmap، وإلا يُرجع 0 UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapMin

تم تقديمه في: v20.1.0 يعيد موضع أصغر bit مفعَّل في bitmap. وإذا كانت جميع bits غير مفعَّلة، فيعيد UINT32_MAX (أو UINT64_MAX إذا كانت bitmap تحتوي على أكثر من 2^64 من bits). البنية
bitmapMin(bitmap)
الوسائط القيمة المُعادة تعيد موضع أصغر بت مُفعَّل في الـ bitmap، أو UINT32_MAX/UINT64_MAX UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapMin(bitmapBuild([3, 5, 2, 6])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapOr

قُدِّمت في: v20.1.0 يحسب عملية الفصل المنطقي (OR) بين خريطتي بت. الصيغة
bitmapOr(bitmap1, bitmap2)
الوسيطات القيمة المُعادة يُرجع bitmap يحتوي على البتات المضبوطة الموجودة في أيٍّ من كائني bitmap المُدخلين AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapOr(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapOrCardinality

أُضيف في: v20.1.0 يُرجع عدد عناصر عملية الفصل المنطقي (OR) لصورتَي bitmap. الصيغة
bitmapOrCardinality(bitmap1, bitmap2)
الوسيطات القيمة المُعادة يعيد عدد البتات المُعيَّنة في اتحاد كائني bitmap UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapSubsetInRange

أُضيفت في: v20.1.0 تعيد مجموعة فرعية من bitmap تتضمن فقط set bits الواقعة ضمن النطاق المحدد [start, end). وتستخدم فهرسة تبدأ من 1. الصيغة
bitmapSubsetInRange(bitmap, start, end)
المعاملات
  • bitmap — الـ bitmap المطلوب استخراج المجموعة الجزئية منه. AggregateFunction(groupBitmap, T). - start — بداية النطاق (شامل). UInt* - end — نهاية النطاق (غير شامل). UInt*
القيمة المُعادة تعيد bitmap يحتوي فقط على البتات المعيّنة ضمن النطاق المحدد AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([1, 2, 3, 4, 5]), 2, 5)) AS res;
Response
┌─res───────┐
│ [2, 3, 4] │
└───────────┘

bitmapSubsetLimit

أُضيف في: v20.1.0 يعيد مجموعة فرعية من bitmap بدءًا من الموضع range_start وبحد أقصى cardinality_limit من البتات المعيّنة. يستخدم فهرسة تبدأ من 1. الصياغة
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
المعاملات
  • bitmap — كائن bitmap. AggregateFunction(groupBitmap, T). - range_start — بداية النطاق (متضمنة). UInt32 - cardinality_limit — الحد الأقصى لكاردينالية المجموعة الفرعية. UInt32
القيمة المعادة تُرجِع كائن bitmap يحتوي على ما لا يزيد عن cardinality_limit من البتات المضبوطة، بدءًا من range_start AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2)) AS res;
Response
┌─res────┐
│ [5, 3] │
└────────┘

bitmapToArray

أُضيفت في: v20.1.0 تحوّل bitmap إلى مصفوفة من الأعداد الصحيحة غير الموقَّعة. وهي عكس الدالة bitmapBuild. الصيغة
bitmapToArray(bitmap)
الوسائط القيمة المُعادة يعيد مصفوفة من الأعداد الصحيحة غير الموقَّعة الموجودة في bitmap Array(UInt*) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapTransform

أُضيف في: v20.1.0 يغيّر ما يصل إلى N بتًا في bitmap، وذلك باستبدال قيم بتات محددة في from_array بالقيم المناظرة لها في to_array. الصيغة
bitmapTransform(bitmap, from_array, to_array)
الوسيطات
  • bitmap — كائن bitmap. AggregateFunction(groupBitmap, T). - from_array — مصفوفة من البتات المضبوطة الأصلية المطلوب استبدالها. Array(T). - to_array — مصفوفة من البتات المضبوطة الجديدة المراد الاستبدال بها. Array(T).
القيمة المُعادة يعيد bitmap بعناصر حُوِّلت وفقًا للتعيين المحدد AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5]), [2, 4], [20, 40])) AS res;
Response
┌─res───────────────┐
│ [1, 3, 5, 20, 40] │
└───────────────────┘

bitmapXor

طُرحت في: v20.1.0 يحسب الفرق المتماثل (XOR) بين وحدتَي bitmap. الصيغة
bitmapXor(bitmap1, bitmap2)
الوسائط القيمة المُعادة يُرجع bitmap يحتوي على البتات المضبوطة الموجودة في أي من bitmapَي الإدخال، ولكن ليس في كليهما AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(bitmapXor(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res──────────┐
│ [1, 2, 4, 5] │
└──────────────┘

bitmapXorCardinality

تم تقديمها في: v20.1.0 تعيد عدد عناصر XOR (الفرق المتماثل) بين bitmapين. الصيغة
bitmapXorCardinality(bitmap1, bitmap2)
الوسيطات القيمة المعادة تعيد عدد البتات المضبوطة في الفرق المتماثل بين كائني bitmap UInt64 أمثلة مثال على الاستخدام
Query
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   4 │
└─────┘

subBitmap

أُضيف في: v21.9.0 يعيد مجموعة فرعية من الخريطة النقطية، بدءًا من الموضع offset. الحد الأقصى لعدد العناصر في الخريطة النقطية المُعادة هو cardinality_limit. بناء الجملة
subBitmap(bitmap, offset, cardinality_limit)
الوسيطات
  • bitmap — كائن bitmap. AggregateFunction(groupBitmap, T). - offset — عدد البتات المعيّنة المطلوب تخطيها من البداية (بفهرسة تبدأ من الصفر). UInt32 - cardinality_limit — الحد الأقصى لعدد البتات المعيّنة التي يمكن تضمينها في المجموعة الفرعية. UInt32
القيمة المُعادة يعيد bitmap يحتوي على عدد لا يتجاوز limit من البتات المعيّنة، بعد تخطي offset من البتات المعيّنة وبترتيب تصاعدي AggregateFunction(groupBitmap, T) أمثلة مثال على الاستخدام
Query
SELECT bitmapToArray(subBitmap(bitmapBuild([1, 2, 3, 4, 5]), 2, 2)) AS res;
Response
┌─res────┐
│ [3, 4] │
└────────┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦