> ## 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.

> Documentação das funções de bitmap

# Funções de bitmap

Bitmaps podem ser construídos de duas formas. A primeira é por meio da função de agregação groupBitmap com `-State`; a outra é construir um bitmap a partir de um objeto Array.

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

Introduzido em: v20.1.0

Calcula a conjunção lógica (AND) de dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna um bitmap contendo os bits presentes em ambos os bitmaps de entrada [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna a cardinalidade da conjunção lógica (AND) de dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o número de bits definidos na interseção entre os dois bitmaps [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Calcula a diferença de conjuntos A AND-NOT B entre dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto de bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto de bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna um bitmap que contém os bits definidos presentes no primeiro bitmap, mas não no segundo [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna a cardinalidade da operação AND-NOT entre dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o número de bits definidos no resultado de `bitmap1 AND-NOT bitmap2` [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Cria um bitmap a partir de um array de inteiros. Os tipos de elemento compatíveis são inteiros com e sem sinal de 8, 16, 32 ou 64 bits. É o oposto da função [`bitmapToArray`](/pt-BR/reference/functions/regular-functions/bitmap-functions#bitmapToArray).

**Sintaxe**

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

**Argumentos**

* `array` — Array de inteiros. [`Array((U)Int*)`](/pt-BR/reference/data-types/array)

**Valor retornado**

Retorna um bitmap do array fornecido [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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 assinado**

```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>

Introduzido em: v20.1.0

Retorna o número de bits definidos (a cardinalidade) no bitmap.

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o número de bits definidos no bitmap [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Verifica se o bitmap contém um elemento específico. O valor é comparado como um inteiro sem sinal do tipo de elemento do bitmap. Para bitmaps com sinal, um elemento negativo corresponde à sua contraparte sem sinal (por exemplo, o valor `Int8` `-1` corresponde a `255`).

**Sintaxe**

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

**Argumentos**

* `bitmap` — objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `value` — Elemento a ser verificado. [(U)Int8/16/32/64](/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Retorna `1` se o bitmap contiver o valor especificado; caso contrário, `0` [`UInt8`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

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

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

**bitmap assinado**

```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>

Introduzido em: v20.1.0

Verifica se o primeiro bitmap contém todos os bits definidos no segundo bitmap.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto de bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto de bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna `1` se todos os bits definidos do segundo bitmap estiverem presentes no primeiro bitmap; caso contrário, `0` [`UInt8`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Verifica se o primeiro bitmap contém algum dos bits definidos no segundo bitmap.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna `1` se algum bit do segundo bitmap estiver presente no primeiro bitmap; caso contrário, `0` [`UInt8`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna o maior elemento de um bitmap, interpretado como um inteiro sem sinal do tipo de elemento do bitmap. Para bitmaps com sinal, valores negativos são tratados como suas contrapartes sem sinal (por exemplo, o valor `Int8` `-1` é `255`). Retorna `0` se o bitmap estiver vazio.

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o maior elemento como um valor sem sinal do tipo de elemento do bitmap, ou `0` se o bitmap estiver vazio [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

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

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

**Bitmap assinado**

```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>

Introduzido em: v20.1.0

Retorna o menor elemento de um bitmap, interpretado como um inteiro sem sinal do tipo de elemento do bitmap. Em bitmaps com sinal, valores negativos são tratados como suas contrapartes sem sinal (por exemplo, o valor `Int8` `-128` equivale a `128`). Se o bitmap estiver vazio, retorna `UINT32_MAX` (`UINT64_MAX` se o tipo de elemento do bitmap tiver mais de 32 bits).

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o menor elemento como um valor sem sinal do tipo de elemento do bitmap ou `UINT32_MAX`/`UINT64_MAX` se o bitmap estiver vazio [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

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

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

**bitmap assinado**

```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>

Introduzido em: v20.1.0

Calcula a disjunção lógica (OR) de dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna um bitmap contendo os bits definidos presentes em um ou outro bitmap de entrada [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna a cardinalidade da disjunção lógica (OR) de dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o número de bits definidos na união dos dois bitmaps [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna um subconjunto do bitmap contendo elementos no intervalo de valores `[start, end)`. Os valores dos elementos são comparados como inteiros sem sinal do tipo de elemento do bitmap.

**Sintaxe**

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

**Argumentos**

* `bitmap` — bitmap da qual extrair o subconjunto. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `start` — Início do intervalo (inclusivo). [`UInt*`](/pt-BR/reference/data-types/int-uint) - `end` — Fim do intervalo (exclusivo). [`UInt*`](/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Retorna um bitmap contendo apenas os elementos no intervalo de valores especificado [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna um subconjunto de no máximo `cardinality_limit` elementos cujos valores são maiores ou iguais a `range_start`, selecionando os menores valores nessa ordem sem sinal.

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `range_start` — Início do intervalo (inclusivo). [`UInt32`](/pt-BR/reference/data-types/int-uint) - `cardinality_limit` — Cardinalidade máxima do subconjunto. [`UInt32`](/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Retorna um bitmap contendo no máximo `cardinality_limit` elementos cujo valor sem sinal seja igual ou superior a `range_start` [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Converte um bitmap em um array de seus elementos. O tipo de elemento do array corresponde ao tipo de elemento `T` do bitmap (inteiro com sinal ou sem sinal). É o oposto da função [`bitmapBuild`](/pt-BR/reference/functions/regular-functions/bitmap-functions#bitmapBuild).

**Sintaxe**

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

**Argumentos**

* `bitmap` — bitmap a ser convertido. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna um array com os elementos contidos no bitmap [`Array(T)`](/pt-BR/reference/data-types/array)

**Exemplos**

**Exemplo de uso**

```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 assinado**

```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>

Introduzido em: v20.1.0

Substitui elementos em um bitmap de acordo com um mapeamento de `from_array` para `to_array`.
Os valores são interpretados como inteiros sem sinal do tipo de elemento do bitmap (no mesmo domínio de [`bitmapContains`](/pt-BR/reference/functions/regular-functions/bitmap-functions#bitmapContains)).
Para bitmaps com sinal, um elemento negativo corresponde à sua contraparte sem sinal (por exemplo, o valor `Int8` `-1` corresponde a `255`).
Um valor em `to_array` que não cabe no tipo de elemento do bitmap gera `BAD_ARGUMENTS`. Um valor em `from_array`
que não cabe simplesmente não é encontrado, portanto a substituição correspondente não é aplicada.

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `from_array` — Array dos bits definidos originais a serem substituídos. [`Array(T)`](/pt-BR/reference/data-types/array). - `to_array` — Array dos novos bits definidos a serem usados na substituição. [`Array(T)`](/pt-BR/reference/data-types/array).

**Valor retornado**

Retorna um bitmap com os elementos transformados de acordo com o mapeamento fornecido [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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 assinado**

```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>

Introduzido em: v20.1.0

Calcula a diferença simétrica (XOR) entre dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna um bitmap contendo os bits definidos como 1 presentes em um ou outro bitmap de entrada, mas não em ambos [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido em: v20.1.0

Retorna a cardinalidade do XOR (diferença simétrica) de dois bitmaps.

**Sintaxe**

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

**Argumentos**

* `bitmap1` — Primeiro objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `bitmap2` — Segundo objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction).

**Valor retornado**

Retorna o número de bits definidos na diferença simétrica entre os dois bitmaps [`UInt64`](/pt-BR/reference/data-types/int-uint)

**Exemplos**

**Exemplo de uso**

```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>

Introduzido na versão: v21.9.0

Retorna um subconjunto do bitmap após ignorar `offset` elementos em ordem crescente de valores sem sinal. A cardinalidade máxima do bitmap retornado é `cardinality_limit`.

**Sintaxe**

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

**Argumentos**

* `bitmap` — Objeto bitmap. [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction). - `offset` — Número de bits definidos a ignorar desde o início (indexação começando em zero). [`UInt32`](/pt-BR/reference/data-types/int-uint) - `cardinality_limit` — Número máximo de bits definidos a incluir no subconjunto. [`UInt32`](/pt-BR/reference/data-types/int-uint)

**Valor retornado**

Retorna um bitmap contendo no máximo `cardinality_limit` elementos após ignorar `offset` elementos em ordem crescente de valor sem sinal [`AggregateFunction(groupBitmap, T)`](/pt-BR/reference/data-types/aggregatefunction)

**Exemplos**

**Exemplo de uso**

```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] │
└────────┘
```
