2020-04-15 13:56:49 +00:00
---
machine_translated: true
machine_translated_rev: e8cd92bba3269f47787db090899f7c242adf7818
toc_priority: 49
toc_title: "E\u015Flem"
---
# Bitmap işlevleri {#bitmap-functions}
Bitmap işlevleri iki bit eşlemler nesne değeri hesaplama için çalı şmak, yeni bitmap veya kardinality formül hesaplama, and, or, xor ve not, vb gibi kullanı rken döndürmektir.
Bitmap nesnesi için 2 çeşit inşaat yöntemi vardı r. Biri-State ile toplama işlevi groupBitmap tarafı ndan inşa edilecek, diğeri Array nesnesi tarafı ndan inşa edilecek. Ayrı ca bitmap nesnesini dizi nesnesine dönüştürmektir.
2020-04-30 18:19:18 +00:00
Roaringbitmap, Bitmap nesnelerinin gerçek depolanması sı rası nda bir veri yapı sı na sarı lı r. Önemlilik 32’ den küçük veya eşit olduğunda, Set objet kullanı r. Kardinality 32’ den büyük olduğunda, roaringbitmap nesnesi kullanı r. Bu nedenle düşük kardinalite kümesinin depolanması daha hı zlı dı r.
2020-04-15 13:56:49 +00:00
RoaringBitmap hakkı nda daha fazla bilgi için bkz: [CRoaring ](https://github.com/RoaringBitmap/CRoaring ).
## bitmapBuild {#bitmap_functions-bitmapbuild}
İmzası z tamsayı dizisinden bir bit eşlem oluşturun.
``` sql
bitmapBuild(array)
```
**Parametre**
- `array` – unsigned integer array.
**Örnek**
``` sql
SELECT bitmapBuild([1, 2, 3, 4, 5]) AS res, toTypeName(res)
```
``` text
┌─res─┬─toTypeName(bitmapBuild([1, 2, 3, 4, 5]))─────┐
│ │ AggregateFunction(groupBitmap, UInt8) │
└─────┴──────────────────────────────────────────────┘
```
## bitmapToArray {#bitmaptoarray}
2020-04-30 18:19:18 +00:00
Bitmap’ i tamsayı dizisine dönüştürün.
2020-04-15 13:56:49 +00:00
``` sql
bitmapToArray(bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
``` text
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘
```
## bitmapsubsetı nrange {#bitmap-functions-bitmapsubsetinrange}
Belirtilen aralı ktaki alt kümesi döndürür (range\_end içermez).
``` sql
bitmapSubsetInRange(bitmap, range_start, range_end)
```
**Parametre**
- `bitmap` – [Bitmap nesnesi ](#bitmap_functions-bitmapbuild ).
2020-04-30 18:19:18 +00:00
- `range_start` – range start point. Type: [Uİnt32 ](../../sql-reference/data-types/int-uint.md ).
- `range_end` – range end point(excluded). Type: [Uİnt32 ](../../sql-reference/data-types/int-uint.md ).
2020-04-15 13:56:49 +00:00
**Örnek**
``` sql
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res
```
``` text
┌─res───────────────┐
│ [30,31,32,33,100] │
└───────────────────┘
```
## bitmapSubsetLimit {#bitmapsubsetlimit}
Arası nda alı nan n öğeleri ile bitmap bir alt kümesi oluşturur `range_start` ve `cardinality_limit` .
**Sözdizimi**
``` sql
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
```
**Parametre**
- `bitmap` – [Bitmap nesnesi ](#bitmap_functions-bitmapbuild ).
2020-04-30 18:19:18 +00:00
- `range_start` – The subset starting point. Type: [Uİnt32 ](../../sql-reference/data-types/int-uint.md ).
- `cardinality_limit` – The subset cardinality upper limit. Type: [Uİnt32 ](../../sql-reference/data-types/int-uint.md ).
2020-04-15 13:56:49 +00:00
**Döndürülen değer**
Alt.
Tür: `Bitmap object` .
**Örnek**
Sorgu:
``` sql
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,100,200,500]), toUInt32(30), toUInt32(200))) AS res
```
Sonuç:
``` text
┌─res───────────────────────┐
│ [30,31,32,33,100,200,500] │
└───────────────────────────┘
```
## bitmapContains {#bitmap_functions-bitmapcontains}
Bit eşlem bir öğe içerip içermediğini denetler.
``` sql
bitmapContains(haystack, needle)
```
**Parametre**
- `haystack` – [Bitmap nesnesi ](#bitmap_functions-bitmapbuild ), fonksiyon arar nerede.
2020-04-30 18:19:18 +00:00
- `needle` – Value that the function searches. Type: [Uİnt32 ](../../sql-reference/data-types/int-uint.md ).
2020-04-15 13:56:49 +00:00
**Döndürülen değerler**
- 0 — If `haystack` içermez `needle` .
- 1 — If `haystack` içeriyor `needle` .
Tür: `UInt8` .
**Örnek**
``` sql
SELECT bitmapContains(bitmapBuild([1,5,7,9]), toUInt32(9)) AS res
```
``` text
┌─res─┐
│ 1 │
└─────┘
```
## bitmapHasAny {#bitmaphasany}
İki bit eşlemin bazı öğelerle kesiştiği olup olmadı ğı nı kontrol eder.
``` sql
bitmapHasAny(bitmap1, bitmap2)
```
Eğer eminseniz `bitmap2` kesinlikle bir öğe içerir, kullanmayı düşünün [bitmapContains ](#bitmap_functions-bitmapcontains ) işlev. Daha verimli çalı şı r.
**Parametre**
- `bitmap*` – bitmap object.
**Dönüş değerleri**
- `1` , eğer `bitmap1` ve `bitmap2` en azı ndan benzer bir öğeye sahip olun.
- `0` , başka.
**Örnek**
``` sql
SELECT bitmapHasAny(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
```
``` text
┌─res─┐
│ 1 │
└─────┘
```
## bitmapHasAll {#bitmaphasall}
Benzer `hasAll(array, array)` ilk bit eşlem, ikincisinin tüm öğelerini içeriyorsa, 1 değerini döndürür, aksi halde 0.
İkinci bağı msı z değişken boş bir bit eşlem ise, 1 döndürür.
``` sql
bitmapHasAll(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapHasAll(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
```
``` text
┌─res─┐
│ 0 │
└─────┘
```
## bitmapCardinality {#bitmapcardinality}
Retrun bit eşlem kardinalite türü Uİnt64.
``` sql
bitmapCardinality(bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapCardinality(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
``` text
┌─res─┐
│ 5 │
└─────┘
```
## bitmapMin {#bitmapmin}
Kümedeki uint64 türünün en küçük değerini yeniden çalı ştı rı n, küme boşsa UİNT32\_MAX.
bitmapMin(bitmap)
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapMin(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
┌─res─┐
│ 1 │
└─────┘
## bitmapMax {#bitmapmax}
Küme boşsa, kümedeki uint64 türünün en büyük değerini 0 olarak yeniden çalı ştı rı n.
bitmapMax(bitmap)
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
┌─res─┐
│ 5 │
└─────┘
## bitmapTransform {#bitmaptransform}
2020-04-30 18:19:18 +00:00
Bitmap’ teki bir değer dizisini başka bir değer dizisine dönüştürün, sonuç yeni bir bitmap’ tir.
2020-04-15 13:56:49 +00:00
bitmapTransform(bitmap, from_array, to_array)
**Parametre**
- `bitmap` – bitmap object.
- `from_array` – UInt32 array. For idx in range \[0, from\_array.size()), if bitmap contains from\_array\[idx\], then replace it with to\_array\[idx\]. Note that the result depends on array ordering if there are common elements between from\_array and to\_array.
- `to_array` – UInt32 array, its size shall be the same to from\_array.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5, 6, 7, 8, 9, 10]), cast([5,999,2] as Array(UInt32)), cast([2,888,20] as Array(UInt32)))) AS res
```
┌─res───────────────────┐
│ [1,3,4,6,7,8,9,10,20] │
└───────────────────────┘
## bitmapAnd {#bitmapand}
2020-04-30 18:19:18 +00:00
İki bitmap ve hesaplama, sonuç yeni bir bitmap’ tir.
2020-04-15 13:56:49 +00:00
``` sql
bitmapAnd(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res─┐
│ [3] │
└─────┘
```
## bitmapOr {#bitmapor}
2020-04-30 18:19:18 +00:00
İki bitmap veya hesaplama, sonuç yeni bir bitmap’ tir.
2020-04-15 13:56:49 +00:00
``` sql
bitmapOr(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapOr(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘
```
## bitmapXor {#bitmapxor}
İki bitmap XOR hesaplama, sonuç yeni bir bitmap.
``` sql
bitmapXor(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapXor(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res───────┐
│ [1,2,4,5] │
└───────────┘
```
## bitmapAndnot {#bitmapandnot}
İki bit eşlem andnot hesaplama, sonuç yeni bir bit eşlem.
``` sql
bitmapAndnot(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res───┐
│ [1,2] │
└───────┘
```
## bitmapAndCardinality {#bitmapandcardinality}
İki bitmap ve hesaplama, uint64 türünün kardinalliğini döndürür.
``` sql
bitmapAndCardinality(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 1 │
└─────┘
```
## bitmapOrCardinality {#bitmaporcardinality}
İki bitmap veya hesaplama, uint64 türünün kardinalliğini döndürür.
``` sql
bitmapOrCardinality(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 5 │
└─────┘
```
## bitmapXorCardinality {#bitmapxorcardinality}
İki bitmap XOR hesaplama, uint64 türünün kardinalliğini döndürür.
``` sql
bitmapXorCardinality(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 4 │
└─────┘
```
## bitmapAndnotCardinality {#bitmapandnotcardinality}
İki bitmap andnot hesaplama, uint64 türünün kardinalliğini döndürür.
``` sql
bitmapAndnotCardinality(bitmap,bitmap)
```
**Parametre**
- `bitmap` – bitmap object.
**Örnek**
``` sql
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 2 │
└─────┘
```
[Orijinal makale ](https://clickhouse.tech/docs/en/query_language/functions/bitmap_functions/ ) <!--hide-->