Saltar al contenido principal
Los bitmaps se pueden construir de dos formas. La primera utiliza la función de agregación groupBitmap con -State; la segunda consiste en construir un bitmap a partir de un Array.

bitmapAnd

Introducido en: v20.1.0 Calcula la conjunción lógica (AND) de dos bitmaps. Sintaxis
bitmapAnd(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve un bitmap que contiene los bits presentes en los dos bitmaps de entrada AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─┐
│ [3] │
└─────┘

bitmapAndCardinality

Introducido en: v20.1.0 Devuelve la cardinalidad de la conjunción lógica (AND) de dos bitmaps. Sintaxis
bitmapAndCardinality(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve el número de bits activados en la intersección de los dos bitmaps UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   1 │
└─────┘

bitmapAndnot

Introducido en: v20.1.0 Calcula la diferencia de conjuntos A AND-NOT B entre dos bitmaps. Sintaxis
bitmapAndnot(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve un bitmap que contiene los bits activados presentes en el primer bitmap, pero no en el segundo AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res────┐
│ [1, 2] │
└────────┘

bitmapAndnotCardinality

Introducido en: v20.1.0 Devuelve la cardinalidad de la operación AND-NOT entre dos bitmaps. Sintaxis
bitmapAndnotCardinality(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve el número de bits activados en el resultado de bitmap1 AND-NOT bitmap2 UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapBuild

Introducido en: v20.1.0 Crea un bitmap a partir de un array de enteros sin signo. Es la operación inversa de la función bitmapToArray. Sintaxis
bitmapBuild(array)
Argumentos Valor devuelto Devuelve un bitmap a partir del array proporcionado AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
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

Introducido en: v20.1.0 Devuelve el número de bits activados (la cardinalidad) en el bitmap. Sintaxis
bitmapCardinality(bitmap)
Argumentos Valor devuelto Devuelve el número de bits activados en el bitmap UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapCardinality(bitmapBuild([1, 3, 3, 5, 7, 7])) AS res
Response
┌─res─┐
│   4 │
└─────┘

bitmapContains

Introducido en: v20.1.0 Comprueba si el bitmap contiene un elemento específico. Sintaxis
bitmapContains(bitmap, value)
Argumentos Valor devuelto Devuelve 1 si el bitmap contiene el valor especificado; de lo contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT bitmapContains(bitmapBuild([1, 2, 3]), 2) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAll

Introducido en: v20.1.0 Comprueba si el primer bitmap contiene todos los bits activados del segundo bitmap. Sintaxis
bitmapHasAll(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve 1 si todos los bits activados del segundo bitmap están presentes en el primero; de lo contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT bitmapHasAll(bitmapBuild([1, 2, 3]), bitmapBuild([2, 3])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAny

Introducido en: v20.1.0 Comprueba si el primer bitmap contiene algún bit activado del segundo bitmap. Sintaxis
bitmapHasAny(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve 1 si algún bit del segundo bitmap está presente en el primero; en caso contrario, 0 UInt8 Ejemplos Ejemplo de uso
Query
SELECT bitmapHasAny(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapMax

Introducido en: v20.1.0 Devuelve la posición del bit activado de mayor valor en un bitmap, o 0 si el bitmap está vacío. Sintaxis
bitmapMax(bitmap)
Argumentos Valor devuelto Devuelve la posición del bit activado más alto en el bitmap; de lo contrario, 0 UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapMin

Introducido en: v20.1.0 Devuelve la posición del bit activado más pequeño en un bitmap. Si no hay ningún bit activado, devuelve UINT32_MAX (UINT64_MAX si el bitmap contiene más de 2^64 bits). Sintaxis
bitmapMin(bitmap)
Argumentos Valor devuelto Devuelve la posición del bit activado de menor valor en el bitmap, o UINT32_MAX/UINT64_MAX UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapMin(bitmapBuild([3, 5, 2, 6])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapOr

Introducido en: v20.1.0 Calcula la disyunción lógica (OR) de dos bitmaps. Sintaxis
bitmapOr(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve un bitmap que contiene los bits activados presentes en cualquiera de los bitmaps de entrada AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapOr(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapOrCardinality

Introducido en: v20.1.0 Devuelve la cardinalidad de la disyunción lógica (OR) de dos bitmaps. Sintaxis
bitmapOrCardinality(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve el número de bits activados en la unión de los dos bitmaps UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapSubsetInRange

Introducido en: v20.1.0 Devuelve un subconjunto del bitmap que contiene solo los bits activados en el rango especificado [start, end). Usa indexación basada en 1. Sintaxis
bitmapSubsetInRange(bitmap, start, end)
Argumentos Valor devuelto Devuelve un bitmap que contiene solo los bits activados en el rango especificado AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([1, 2, 3, 4, 5]), 2, 5)) AS res;
Response
┌─res───────┐
│ [2, 3, 4] │
└───────────┘

bitmapSubsetLimit

Introducido en: v20.1.0 Devuelve un subconjunto de un bitmap a partir de la posición range_start, con un máximo de cardinality_limit bits activos. Utiliza indexación desde 1. Sintaxis
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
Argumentos Valor devuelto Devuelve un bitmap que contiene como máximo cardinality_limit bits activados, a partir de range_start AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2)) AS res;
Response
┌─res────┐
│ [5, 3] │
└────────┘

bitmapToArray

Introducido en: v20.1.0 Convierte un bitmap en un array de enteros sin signo. Es la función opuesta a bitmapBuild. Sintaxis
bitmapToArray(bitmap)
Argumentos Valor devuelto Devuelve un Array de enteros sin signo contenidos en el bitmap Array(UInt*) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapTransform

Introducido en: v20.1.0 Cambia hasta N bits de un bitmap sustituyendo los valores de bits específicos de from_array por los correspondientes de to_array. Sintaxis
bitmapTransform(bitmap, from_array, to_array)
Argumentos Valor devuelto Devuelve un bitmap cuyos elementos se transforman según el mapeo indicado AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5]), [2, 4], [20, 40])) AS res;
Response
┌─res───────────────┐
│ [1, 3, 5, 20, 40] │
└───────────────────┘

bitmapXor

Introducido en: v20.1.0 Calcula la diferencia simétrica (XOR) entre dos bitmaps. Sintaxis
bitmapXor(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve un bitmap que contiene los bits activados presentes en cualquiera de los bitmap de entrada, pero no en ambos AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(bitmapXor(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res──────────┐
│ [1, 2, 4, 5] │
└──────────────┘

bitmapXorCardinality

Introducido en: v20.1.0 Devuelve la cardinalidad del XOR (diferencia simétrica) de dos bitmaps. Sintaxis
bitmapXorCardinality(bitmap1, bitmap2)
Argumentos Valor devuelto Devuelve el número de bits activados en la diferencia simétrica de los dos bitmaps UInt64 Ejemplos Ejemplo de uso
Query
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   4 │
└─────┘

subBitmap

Introducido en: v21.9.0 Devuelve un subconjunto del bitmap a partir de la posición offset. La cardinalidad máxima del bitmap devuelto es cardinality_limit. Sintaxis
subBitmap(bitmap, offset, cardinality_limit)
Argumentos
  • bitmap — Objeto bitmap. AggregateFunction(groupBitmap, T). - offset — Número de bits activados que se omiten desde el inicio (indexado desde cero). UInt32 - cardinality_limit — Número máximo de bits activados que se incluirán en el subconjunto. UInt32
Valor devuelto Devuelve un bitmap que contiene como máximo limit bits activados, tras omitir offset bits activados en orden ascendente AggregateFunction(groupBitmap, T) Ejemplos Ejemplo de uso
Query
SELECT bitmapToArray(subBitmap(bitmapBuild([1, 2, 3, 4, 5]), 2, 2)) AS res;
Response
┌─res────┐
│ [3, 4] │
└────────┘
Última modificación el 10 de junio de 2026