> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-trino-dialect.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق دوال Bitmap

# دوال Bitmap

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

<div id="bitmapAnd">
  ## bitmapAnd
</div>

قُدِّم في: v20.1.0

يحسب الاقتران المنطقي (AND) لخريطتَي bitmap.

**الصيغة**

```sql theme={null}
bitmapAnd(bitmap1, bitmap2)
```

**الوسائط**

* `bitmap1` — كائن الـ bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن الـ bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يعيد bitmap يحتوي على البتات الموجودة في كلٍّ من وحدتَي bitmap المُدخلتَين [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
```

```response title=Response theme={null}
┌─res─┐
│ [3] │
└─────┘
```

<div id="bitmapAndCardinality">
  ## bitmapAndCardinality
</div>

أُضيفت في: v20.1.0

تعيد عدد عناصر ناتج الاقتران المنطقي (AND) بين قيمتَي bitmap.

**البنية**

```sql theme={null}
bitmapAndCardinality(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن الـ bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن الـ bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

تعيد عدد البتات المضبوطة في تقاطع كائني الـ bitmap [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   1 │
└─────┘
```

<div id="bitmapAndnot">
  ## bitmapAndnot
</div>

أُضيف في: v20.1.0

يحسب فرق المجموعتين A AND-NOT B بين خريطتي بت.

**الصيغة**

```sql theme={null}
bitmapAndnot(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن الـ bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن الـ bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يعيد bitmap يحتوي على البتات المضبوطة الموجودة في الـ bitmap الأول وغير الموجودة في الثاني [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
```

```response title=Response theme={null}
┌─res────┐
│ [1, 2] │
└────────┘
```

<div id="bitmapAndnotCardinality">
  ## bitmapAndnotCardinality
</div>

أُضيفت في: v20.1.0

تعيد عدد عناصر ناتج عملية AND-NOT لخريطتي بت.

**الصيغة**

```sql theme={null}
bitmapAndnotCardinality(bitmap1, bitmap2)
```

**الوسائط**

* `bitmap1` — كائن bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يعيد عدد البتات المعيّنة في ناتج `bitmap1 AND-NOT bitmap2` [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   2 │
└─────┘
```

<div id="bitmapBuild">
  ## bitmapBuild
</div>

أُضيفت في: v20.1.0

تُنشئ bitmap من مصفوفة من الأعداد الصحيحة. أنواع العناصر المدعومة هي الأعداد الصحيحة الموقَّعة وغير الموقَّعة ذات 8 أو 16 أو 32 أو 64 بت. وهي عكس الدالة [`bitmapToArray`](/ar/reference/functions/regular-functions/bitmap-functions#bitmapToArray).

**الصيغة**

```sql theme={null}
bitmapBuild(array)
```

**الوسيطات**

* `array` — مصفوفة من الأعداد الصحيحة. [`Array((U)Int*)`](/ar/reference/data-types/array)

**القيمة المُعادة**

يعيد bitmap من المصفوفة المُدخلة [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapBuild([1, 2, 3, 4, 5]) AS res, toTypeName(res);
```

```response title=Response theme={null}
┌─res─┬─toTypeName(bitmapBuild([1, 2, 3, 4, 5]))─────┐
│     │ AggregateFunction(groupBitmap, UInt8)        │
└─────┴──────────────────────────────────────────────┘
```

**bitmap موقَّعة**

```sql title=Query theme={null}
SELECT bitmapBuild([-128, -1]::Array(Int8)) AS res, toTypeName(res);
```

```response title=Response theme={null}
┌─res─┬─toTypeName(bitmapBuild([-128, -1]::Array(Int8)))─┐
│     │ AggregateFunction(groupBitmap, Int8)             │
└─────┴──────────────────────────────────────────────────┘
```

<div id="bitmapCardinality">
  ## bitmapCardinality
</div>

أُضيف في: v20.1.0

يعيد عدد البتات المعيّنة (cardinality) في bitmap.

**الصيغة**

```sql theme={null}
bitmapCardinality(bitmap)
```

**الوسائط**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المعادة**

ترجع عدد البتات المعيّنة في bitmap [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapCardinality(bitmapBuild([1, 3, 3, 5, 7, 7])) AS res
```

```response title=Response theme={null}
┌─res─┐
│   4 │
└─────┘
```

<div id="bitmapContains">
  ## bitmapContains
</div>

أُضيف في: v20.1.0

يتحقق مما إذا كانت bitmap تحتوي على عنصر معيّن. تُقارن القيمة كعدد صحيح غير موقّع من نوع عنصر bitmap. بالنسبة إلى bitmap الموقّعة، يطابق العنصر السالب نظيره غير الموقّع (على سبيل المثال، تطابق قيمة `Int8` وهي `-1` القيمة `255`).

**الصيغة**

```sql theme={null}
bitmapContains(bitmap, value)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `value` — العنصر المراد التحقق منه. [(U)Int8/16/32/64](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تُرجع `1` إذا كانت `bitmap` تحتوي على القيمة المحددة، وإلا فتُرجع `0` [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapContains(bitmapBuild([1, 2, 3]), 2) AS res;
```

```response title=Response theme={null}
┌─res─┐
│  1  │
└─────┘
```

**bitmap موقَّعة**

```sql title=Query theme={null}
SELECT bitmapContains(bitmapBuild([-1]::Array(Int8)), 255) AS res;
```

```response title=Response theme={null}
┌─res─┐
│  1  │
└─────┘
```

<div id="bitmapHasAll">
  ## bitmapHasAll
</div>

أُضيفت في: v20.1.0

يتحقق مما إذا كانت `bitmap` الأولى تحتوي على جميع البتات المفعّلة في `bitmap` الثانية.

**الصياغة**

```sql theme={null}
bitmapHasAll(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

تُرجِع `1` إذا كانت جميع البتات المضبوطة في الـ bitmap الثانية موجودة في الـ bitmap الأولى، وإلا فتُرجِع `0` [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapHasAll(bitmapBuild([1, 2, 3]), bitmapBuild([2, 3])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│  1  │
└─────┘
```

<div id="bitmapHasAny">
  ## bitmapHasAny
</div>

أُضيف في: v20.1.0

يتحقق مما إذا كانت الـ bitmap الأولى تحتوي على أي بتات مضبوطة من الـ bitmap الثانية.

**الصيغة**

```sql theme={null}
bitmapHasAny(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

تُرجع `1` إذا وُجدت أي بتات من bitmap الثانية في bitmap الأولى، وإلا فتُرجع `0` [`UInt8`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapHasAny(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│  1  │
└─────┘
```

<div id="bitmapMax">
  ## bitmapMax
</div>

أُضيف في: v20.1.0

يعيد أكبر عنصر في bitmap، مُفسَّرًا كعدد صحيح غير موقَّع من نوع عنصر bitmap. بالنسبة إلى bitmap الموقَّعة، تُعامل القيم السالبة كمقابلاتها غير الموقَّعة (على سبيل المثال، قيمة `Int8` وهي `-1` تصبح `255`). يعيد `0` إذا كانت bitmap فارغة.

**الصيغة**

```sql theme={null}
bitmapMax(bitmap)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يُرجع أكبر عنصر كقيمة غير موقعة من نوع عنصر bitmap، أو `0` إذا كانت bitmap فارغة [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   5 │
└─────┘
```

**bitmap موقَّعة**

```sql title=Query theme={null}
SELECT bitmapMax(bitmapBuild([-128, -1]::Array(Int8))) AS res;
```

```response title=Response theme={null}
┌─res─┐
│ 255 │
└─────┘
```

<div id="bitmapMin">
  ## bitmapMin
</div>

أُضيف في: v20.1.0

يعيد أصغر عنصر في bitmap، ويُفسَّر على أنه عدد صحيح غير موقّع من نوع عنصر bitmap. بالنسبة إلى bitmap الموقّعة، تُعامل القيم السالبة كمكافئاتها غير الموقّعة (على سبيل المثال، قيمة `Int8` ‏`-128` هي `128`). إذا كانت bitmap فارغة، يعيد `UINT32_MAX` (أو `UINT64_MAX` إذا كان نوع عنصر bitmap أعرض من 32 بتًا).

**الصيغة**

```sql theme={null}
bitmapMin(bitmap)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

تُعيد أصغر عنصر بوصفه قيمة غير موقعة من نوع عناصر bitmap، أو `UINT32_MAX`/`UINT64_MAX` إذا كانت bitmap فارغة [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapMin(bitmapBuild([3, 5, 2, 6])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   2 │
└─────┘
```

**bitmap موقّعة**

```sql title=Query theme={null}
SELECT bitmapMin(bitmapBuild([-128, -1]::Array(Int8))) AS res;
```

```response title=Response theme={null}
┌─res─┐
│ 128 │
└─────┘
```

<div id="bitmapOr">
  ## bitmapOr
</div>

قُدِّمت في: v20.1.0

يحسب عملية الفصل المنطقي (OR) بين خريطتي بت.

**الصيغة**

```sql theme={null}
bitmapOr(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن الـ bitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن الـ bitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يُرجع bitmap يحتوي على البتات المضبوطة الموجودة في أيٍّ من كائني bitmap المُدخلين [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapOr(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
```

```response title=Response theme={null}
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘
```

<div id="bitmapOrCardinality">
  ## bitmapOrCardinality
</div>

أُضيف في: v20.1.0

يُرجع عدد عناصر عملية الفصل المنطقي (OR) لصورتَي bitmap.

**الصيغة**

```sql theme={null}
bitmapOrCardinality(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — أول كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — ثاني كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يعيد عدد البتات المُعيَّنة في اتحاد كائني bitmap [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   5 │
└─────┘
```

<div id="bitmapSubsetInRange">
  ## bitmapSubsetInRange
</div>

أُضيفت في: v20.1.0

تعيد مجموعة فرعية من `bitmap` تحتوي على عناصر تقع قيمها ضمن النطاق `[start, end)`. تُقارن قيم العناصر كأعداد صحيحة غير موقعة من نوع عنصر bitmap.

**الصيغة**

```sql theme={null}
bitmapSubsetInRange(bitmap, start, end)
```

**الوسيطات**

* `bitmap` — الـ bitmap المطلوب استخراج المجموعة الفرعية منه. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `start` — بداية النطاق (شامل). [`UInt*`](/ar/reference/data-types/int-uint) - `end` — نهاية النطاق (غير شامل). [`UInt*`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

تعيد bitmap يحتوي فقط على العناصر ضمن نطاق القيم المحدد [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([1, 2, 3, 4, 5]), 2, 5)) AS res;
```

```response title=Response theme={null}
┌─res───────┐
│ [2, 3, 4] │
└───────────┘
```

<div id="bitmapSubsetLimit">
  ## bitmapSubsetLimit
</div>

أُضيف في: v20.1.0

تُرجِع مجموعة فرعية تضم ما لا يزيد عن `cardinality_limit` عنصرًا، وتكون قيم عناصرها أكبر من أو تساوي `range_start`، مع اختيار أصغر هذه القيم وفق الترتيب غير الموقّع.

**الصيغة**

```sql theme={null}
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `range_start` — بداية النطاق (متضمنة). [`UInt32`](/ar/reference/data-types/int-uint) - `cardinality_limit` — الحد الأقصى لعدد العناصر للمجموعة الفرعية. [`UInt32`](/ar/reference/data-types/int-uint)

**القيمة المعادة**

تُرجِع كائن bitmap يحتوي على ما لا يزيد عن `cardinality_limit` من العناصر ذات القيمة غير الموقعة التي لا تقل عن `range_start` [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT arraySort(bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2))) AS res;
```

```response title=Response theme={null}
┌─res────┐
│ [3, 5] │
└────────┘
```

<div id="bitmapToArray">
  ## bitmapToArray
</div>

أُضيفت في: v20.1.0

تحوّل bitmap إلى مصفوفة من عناصرها. يطابق نوع عنصر المصفوفة نوع عنصر bitmap `T` (عدد صحيح موقَّع أو غير موقَّع). وهي عكس الدالة [`bitmapBuild`](/ar/reference/functions/regular-functions/bitmap-functions#bitmapBuild).

**الصيغة**

```sql theme={null}
bitmapToArray(bitmap)
```

**الوسيطات**

* `bitmap` — قيمة `bitmap` المطلوب تحويلها. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يعيد مصفوفة من العناصر الموجودة في `bitmap` [`Array(T)`](/ar/reference/data-types/array)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res;
```

```response title=Response theme={null}
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘
```

**bitmap الموقَّعة**

```sql title=Query theme={null}
SELECT arraySort(bitmapToArray(bitmapBuild([-128, -1]::Array(Int8)))) AS res;
```

```response title=Response theme={null}
┌─res────────┐
│ [-128, -1] │
└────────────┘
```

<div id="bitmapTransform">
  ## bitmapTransform
</div>

أُضيف في: v20.1.0

يستبدل العناصر في bitmap وفقًا لتعيين من `from_array` إلى `to_array`.
تُفسَّر القيم كأعداد صحيحة غير موقعة من نوع عنصر bitmap (ضمن نفس المجال مثل [`bitmapContains`](/ar/reference/functions/regular-functions/bitmap-functions#bitmapContains)).
بالنسبة إلى bitmaps الموقعة، يطابق العنصر السالب نظيره غير الموقّع (على سبيل المثال، تطابق قيمة `Int8`‏ `-1` القيمة `255`).
تؤدي القيمة في `to_array` التي لا تلائم نوع عنصر bitmap إلى ظهور الخطأ `BAD_ARGUMENTS`. أما القيمة في `from_array`
التي لا تلائم النوع فلا يُعثر عليها ببساطة، لذا لا يُطبَّق الاستبدال المقابل.

**الصيغة**

```sql theme={null}
bitmapTransform(bitmap, from_array, to_array)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `from_array` — مصفوفة من البتات المضبوطة الأصلية المطلوب استبدالها. [`Array(T)`](/ar/reference/data-types/array). - `to_array` — مصفوفة من البتات المضبوطة الجديدة التي سيُستبدل بها. [`Array(T)`](/ar/reference/data-types/array).

**القيمة المُعادة**

يعيد bitmap بعناصر حُوِّلت وفقًا للتعيين المحدد [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5]), [2, 4], [20, 40])) AS res;
```

```response title=Response theme={null}
┌─res───────────────┐
│ [1, 3, 5, 20, 40] │
└───────────────────┘
```

**bitmap موقّع**

```sql title=Query theme={null}
SELECT arraySort(bitmapToArray(bitmapTransform(bitmapBuild([-1, 0]::Array(Int8)), [255], [10]))) AS res;
```

```response title=Response theme={null}
┌─res─────┐
│ [0, 10] │
└─────────┘
```

<div id="bitmapXor">
  ## bitmapXor
</div>

طُرحت في: v20.1.0

يحسب الفرق المتماثل (XOR) بين وحدتَي bitmap.

**الصيغة**

```sql theme={null}
bitmapXor(bitmap1, bitmap2)
```

**الوسائط**

* `bitmap1` — كائن الـbitmap الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن الـbitmap الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المُعادة**

يُرجع bitmap يحتوي على البتات المضبوطة الموجودة في أي من bitmapَي الإدخال، ولكن ليس في كليهما [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(bitmapXor(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
```

```response title=Response theme={null}
┌─res──────────┐
│ [1, 2, 4, 5] │
└──────────────┘
```

<div id="bitmapXorCardinality">
  ## bitmapXorCardinality
</div>

تم تقديمها في: v20.1.0

تعيد عدد عناصر XOR (الفرق المتماثل) بين bitmapين.

**الصيغة**

```sql theme={null}
bitmapXorCardinality(bitmap1, bitmap2)
```

**الوسيطات**

* `bitmap1` — كائن `bitmap` الأول. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `bitmap2` — كائن `bitmap` الثاني. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction).

**القيمة المعادة**

تعيد عدد البتات المضبوطة في الفرق المتماثل بين كائني `bitmap` [`UInt64`](/ar/reference/data-types/int-uint)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
```

```response title=Response theme={null}
┌─res─┐
│   4 │
└─────┘
```

<div id="subBitmap">
  ## subBitmap
</div>

أُضيف في: v21.9.0

يعيد مجموعة فرعية من bitmap بعد تخطي `offset` عنصرًا، بترتيب تصاعدي للقيم غير الموقعة. الحد الأقصى لعدد العناصر في bitmap المُعادة هو `cardinality_limit`.

**الصيغة**

```sql theme={null}
subBitmap(bitmap, offset, cardinality_limit)
```

**الوسيطات**

* `bitmap` — كائن bitmap. [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction). - `offset` — عدد البتات المضبوطة المطلوب تخطيها من البداية (بفهرسة تبدأ من الصفر). [`UInt32`](/ar/reference/data-types/int-uint) - `cardinality_limit` — الحد الأقصى لعدد البتات المضبوطة التي يمكن تضمينها في المجموعة الفرعية. [`UInt32`](/ar/reference/data-types/int-uint)

**القيمة المُعادة**

يعيد bitmap يحتوي على عدد لا يتجاوز `cardinality_limit` من العناصر بعد تخطي `offset` من العناصر بترتيب تصاعدي للقيم غير الموقعة [`AggregateFunction(groupBitmap, T)`](/ar/reference/data-types/aggregatefunction)

**أمثلة**

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

```sql title=Query theme={null}
SELECT bitmapToArray(subBitmap(bitmapBuild([1, 2, 3, 4, 5]), 2, 2)) AS res;
```

```response title=Response theme={null}
┌─res────┐
│ [3, 4] │
└────────┘
```
