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
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
SELECT bitmapHasAll(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res
```
``` text
┌─res─┐
│ 0 │
└─────┘
```
## bitmapCardinality {#bitmapcardinality}
UInt64型のビットマップのカーディナリティを再度実行可能。
``` sql
bitmapCardinality(bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapCardinality(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
``` text
┌─res─┐
│ 5 │
└─────┘
```
## bitmapmincomment {#bitmapmin}
セット内のタイプuint64の最小値を再度取り消し、セットが空の場合はuint32\_max。
bitmapMin(bitmap)
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapMin(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
┌─res─┐
│ 1 │
└─────┘
## bitmapMax {#bitmapmax}
セット内のuint64型の最大値を取り消し、セットが空の場合は0になります。
bitmapMax(bitmap)
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res
```
┌─res─┐
│ 5 │
└─────┘
## bitmapTransform {#bitmaptransform}
ビットマップ内の値の配列を別の値の配列に変換すると、結果は新しいビットマップになります。
bitmapTransform(bitmap, from_array, to_array)
**パラメータ**
-`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.
**例えば**
``` 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}
二つのビットマップと計算、結果は新しいビットマップです。
``` sql
bitmapAnd(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res─┐
│ [3] │
└─────┘
```
## bitmapOr {#bitmapor}
二つのビットマップや計算、結果は新しいビットマップです。
``` sql
bitmapOr(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapToArray(bitmapOr(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res─────────┐
│ [1,2,3,4,5] │
└─────────────┘
```
## bitmapXor {#bitmapxor}
二つのビットマップxor計算、結果は新しいビットマップです。
``` sql
bitmapXor(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapToArray(bitmapXor(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res───────┐
│ [1,2,4,5] │
└───────────┘
```
## bitmapAndnot {#bitmapandnot}
二つのビットマップと計算ではなく、結果は新しいビットマップです。
``` sql
bitmapAndnot(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1,2,3]),bitmapBuild([3,4,5]))) AS res
```
``` text
┌─res───┐
│ [1,2] │
└───────┘
```
## bitmapAndCardinality {#bitmapandcardinality}
二つのビットマップと計算、型uint64の戻り値のカーディナリティ。
``` sql
bitmapAndCardinality(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 1 │
└─────┘
```
## ビットmapcardinality {#bitmaporcardinality}
二つのビットマップまたは計算、型uint64の戻り値のカーディナリティ。
``` sql
bitmapOrCardinality(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;
```
``` text
┌─res─┐
│ 5 │
└─────┘
```
## bitmapXorCardinality {#bitmapxorcardinality}
二つのビットマップxor計算、型uint64の戻り値のカーディナリティ。
``` sql
bitmapXorCardinality(bitmap,bitmap)
```
**パラメータ**
-`bitmap`– bitmap object.
**例えば**
``` sql
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]),bitmapBuild([3,4,5])) AS res;