Passer au contenu principal
Les bitmaps peuvent être construits de deux façons. La première consiste à utiliser la fonction d’agrégation groupBitmap avec -State ; la seconde à construire un bitmap à partir d’un objet Array.

bitmapAnd

Introduit dans : v20.1.0 Calcule la conjonction logique (AND) de deux bitmaps. Syntaxe
bitmapAnd(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie un bitmap contenant les bits présents dans les deux bitmaps d’entrée AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─┐
│ [3] │
└─────┘

bitmapAndCardinality

Introduit dans : v20.1.0 Renvoie la cardinalité de la conjonction logique (AND) de deux bitmaps. Syntaxe
bitmapAndCardinality(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie le nombre de bits à 1 dans l’intersection des deux bitmaps UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   1 │
└─────┘

bitmapAndnot

Introduit dans : v20.1.0 Calcule la différence d’ensemble A AND-NOT B entre deux bitmaps. Syntaxe
bitmapAndnot(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie un bitmap contenant les bits à 1 présents dans le premier bitmap, mais pas dans le second AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res────┐
│ [1, 2] │
└────────┘

bitmapAndnotCardinality

Introduit dans : v20.1.0 Renvoie la cardinalité de l’opération AND-NOT entre deux bitmaps. Syntaxe
bitmapAndnotCardinality(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie le nombre de bits à 1 dans le résultat de bitmap1 AND-NOT bitmap2 UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapBuild

Introduit dans : v20.1.0 Crée un bitmap à partir d’un tableau d’entiers non signés. C’est l’inverse de la fonction bitmapToArray. Syntaxe
bitmapBuild(array)
Arguments Valeur renvoyée Renvoie un bitmap à partir du tableau fourni AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
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

Introduit dans : v20.1.0 Renvoie le nombre de bits à 1 (la cardinalité) dans le bitmap. Syntaxe
bitmapCardinality(bitmap)
Arguments Valeur renvoyée Renvoie le nombre de bits à 1 dans le bitmap UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapCardinality(bitmapBuild([1, 3, 3, 5, 7, 7])) AS res
Response
┌─res─┐
│   4 │
└─────┘

bitmapContains

Introduit dans : v20.1.0 Vérifie si le bitmap contient un élément donné. Syntaxe
bitmapContains(bitmap, value)
Arguments Valeur renvoyée Renvoie 1 si le bitmap contient la valeur spécifiée, sinon 0 UInt8 Exemples Exemple d’utilisation
Query
SELECT bitmapContains(bitmapBuild([1, 2, 3]), 2) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAll

Introduit dans : v20.1.0 Vérifie si le premier bitmap contient tous les bits à 1 du second bitmap. Syntaxe
bitmapHasAll(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie 1 si tous les bits à 1 du deuxième bitmap sont présents dans le premier bitmap, sinon 0 UInt8 Exemples Exemple d’utilisation
Query
SELECT bitmapHasAll(bitmapBuild([1, 2, 3]), bitmapBuild([2, 3])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAny

Introduit dans : v20.1.0 Vérifie si le premier bitmap contient au moins un des bits à 1 du second bitmap. Syntaxe
bitmapHasAny(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie 1 si au moins un bit du deuxième bitmap est présent dans le premier bitmap, sinon 0 UInt8 Exemples Exemple d’utilisation
Query
SELECT bitmapHasAny(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapMax

Introduit dans : v20.1.0 Renvoie la position du bit à 1 le plus élevé dans un bitmap, ou 0 si le bitmap est vide. Syntaxe
bitmapMax(bitmap)
Arguments Valeur renvoyée Renvoie la position du bit à 1 le plus élevé dans le bitmap, sinon 0 UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapMin

Introduit dans : v20.1.0 Renvoie la position du plus petit bit à 1 dans un bitmap. Si aucun bit n’est défini, renvoie UINT32_MAX (UINT64_MAX si le bitmap contient plus de 2^64 bits). Syntaxe
bitmapMin(bitmap)
Arguments Valeur renvoyée Renvoie la position du plus petit bit à 1 dans le bitmap, ou UINT32_MAX/UINT64_MAX UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapMin(bitmapBuild([3, 5, 2, 6])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapOr

Introduit dans : v20.1.0 Calcule la disjonction logique (OR) de deux bitmaps. Syntaxe
bitmapOr(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie un bitmap contenant les bits à 1 présents dans l’un ou l’autre des bitmaps d’entrée AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapOr(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapOrCardinality

Introduit dans : v20.1.0 Renvoie la cardinalité de la disjonction logique (OR) de deux bitmaps. Syntaxe
bitmapOrCardinality(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie le nombre de bits à 1 dans l’union des deux bitmaps UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapSubsetInRange

Introduit dans : v20.1.0 Renvoie un sous-ensemble du bitmap contenant uniquement les bits à 1 dans la plage spécifiée [start, end). Utilise une indexation à partir de 1. Syntaxe
bitmapSubsetInRange(bitmap, start, end)
Arguments Valeur renvoyée Renvoie un bitmap contenant uniquement les bits à 1 dans la plage spécifiée AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([1, 2, 3, 4, 5]), 2, 5)) AS res;
Response
┌─res───────┐
│ [2, 3, 4] │
└───────────┘

bitmapSubsetLimit

Introduit dans : v20.1.0 Renvoie un sous-ensemble d’un bitmap à partir de la position range_start, avec au plus cardinality_limit bits à 1. Utilise une indexation à partir de 1. Syntaxe
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
Arguments Valeur renvoyée Renvoie un bitmap contenant au plus cardinality_limit bits à 1, à partir de range_start AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2)) AS res;
Response
┌─res────┐
│ [5, 3] │
└────────┘

bitmapToArray

Introduit dans : v20.1.0 Convertit un bitmap en tableau d’entiers non signés. C’est l’inverse de la fonction bitmapBuild. Syntaxe
bitmapToArray(bitmap)
Arguments Valeur renvoyée Renvoie un tableau d’entiers non signés contenus dans le bitmap Array(UInt*) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapTransform

Introduit dans : v20.1.0 Modifie jusqu’à N bits d’un bitmap en remplaçant les valeurs de bit spécifiées dans from_array par les valeurs correspondantes de to_array. Syntaxe
bitmapTransform(bitmap, from_array, to_array)
Arguments Valeur renvoyée Renvoie un bitmap dont les éléments sont transformés selon la correspondance indiquée AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5]), [2, 4], [20, 40])) AS res;
Response
┌─res───────────────┐
│ [1, 3, 5, 20, 40] │
└───────────────────┘

bitmapXor

Introduit dans : v20.1.0 Calcule la différence symétrique (XOR) de deux bitmaps. Syntaxe
bitmapXor(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie un bitmap contenant les bits à 1 présents dans l’un ou l’autre des bitmaps d’entrée, mais pas dans les deux AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(bitmapXor(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res──────────┐
│ [1, 2, 4, 5] │
└──────────────┘

bitmapXorCardinality

Introduit dans : v20.1.0 Renvoie la cardinalité du XOR (différence symétrique) de deux bitmaps. Syntaxe
bitmapXorCardinality(bitmap1, bitmap2)
Arguments Valeur renvoyée Renvoie le nombre de bits à 1 dans la différence symétrique des deux bitmaps UInt64 Exemples Exemple d’utilisation
Query
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   4 │
└─────┘

subBitmap

Introduit dans : v21.9.0 Renvoie un sous-ensemble du bitmap à partir de la position offset. La cardinalité maximale du bitmap renvoyé est cardinality_limit. Syntaxe
subBitmap(bitmap, offset, cardinality_limit)
Arguments
  • bitmap — Objet bitmap. AggregateFunction(groupBitmap, T). - offset — Nombre de bits à 1 à ignorer à partir du début (indexation à partir de zéro). UInt32 - cardinality_limit — Nombre maximal de bits à 1 à inclure dans le sous-ensemble. UInt32
Valeur renvoyée Renvoie un bitmap contenant au plus limit bits à 1, après omission de offset bits à 1, dans l’ordre croissant AggregateFunction(groupBitmap, T) Exemples Exemple d’utilisation
Query
SELECT bitmapToArray(subBitmap(bitmapBuild([1, 2, 3, 4, 5]), 2, 2)) AS res;
Response
┌─res────┐
│ [3, 4] │
└────────┘
Dernière modification le 25 juin 2026