Перейти к основному содержанию
Битмапы можно создавать двумя способами. Первый — с помощью агрегатной функции groupBitmap с -State, второй — из объекта Array.

bitmapAnd

Добавленный в: v20.1.0 Вычисляет логическую операцию И (AND) для двух битмапов. Синтаксис
bitmapAnd(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает битмап, содержащий биты, установленные в обоих входных битмапах AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapAnd(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─┐
│ [3] │
└─────┘

bitmapAndCardinality

Добавленный в: v20.1.0 Возвращает мощность результата логического И (AND) двух битмапов. Синтаксис
bitmapAndCardinality(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает число установленных битов в пересечении двух битмапов UInt64 Примеры Пример использования
Query
SELECT bitmapAndCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   1 │
└─────┘

bitmapAndnot

Добавленный в: v20.1.0 Вычисляет разность множеств A AND-NOT B для двух битмапов. Синтаксис
bitmapAndnot(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает битмап, содержащий биты, установленные в первом битмапе, но не во втором AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapAndnot(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res────┐
│ [1, 2] │
└────────┘

bitmapAndnotCardinality

Добавленный в: v20.1.0 Возвращает мощность результата операции AND-NOT над двумя битмапами. Синтаксис
bitmapAndnotCardinality(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает количество установленных битов в результате bitmap1 AND-NOT bitmap2 UInt64 Примеры Пример использования
Query
SELECT bitmapAndnotCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapBuild

Добавленный в: v20.1.0 Создаёт битмап из массива беззнаковых целых чисел. Это функция, обратная bitmapToArray. Синтаксис
bitmapBuild(array)
Аргументы
  • array — Массив беззнаковых целых чисел. Array(UInt*)
Возвращаемое значение Возвращает битмап из переданного массива AggregateFunction(groupBitmap, T) Примеры Пример использования
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

Добавленный в: v20.1.0 Возвращает количество установленных битов (мощность) в битмапе. Синтаксис
bitmapCardinality(bitmap)
Аргументы Возвращаемое значение Возвращает количество установленных битов в битмапе UInt64 Примеры Пример использования
Query
SELECT bitmapCardinality(bitmapBuild([1, 3, 3, 5, 7, 7])) AS res
Response
┌─res─┐
│   4 │
└─────┘

bitmapContains

Добавленный в: v20.1.0 Проверяет, содержит ли битмап указанный элемент. Синтаксис
bitmapContains(bitmap, value)
Аргументы Возвращаемое значение Возвращает 1, если битмап содержит указанное значение, иначе — 0 UInt8 Примеры Пример использования
Query
SELECT bitmapContains(bitmapBuild([1, 2, 3]), 2) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAll

Добавленный в: v20.1.0 Проверяет, содержит ли первый битмап все установленные биты из второго битмапа. Синтаксис
bitmapHasAll(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает 1, если все установленные биты второго битмапа содержатся в первом битмапе; в противном случае — 0 UInt8 Примеры Пример использования
Query
SELECT bitmapHasAll(bitmapBuild([1, 2, 3]), bitmapBuild([2, 3])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapHasAny

Добавленный в: v20.1.0 Проверяет, содержит ли первый битмап какие-либо установленные биты из второго битмапа. Синтаксис
bitmapHasAny(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает 1, если хотя бы один бит второго битмапа есть в первом битмапе, иначе — 0 UInt8 Примеры Пример использования
Query
SELECT bitmapHasAny(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5])) AS res;
Response
┌─res─┐
│  1  │
└─────┘

bitmapMax

Добавленный в: v20.1.0 Возвращает позицию самого старшего установленного бита в битмапе или 0, если битмап пуст. Синтаксис
bitmapMax(bitmap)
Аргументы Возвращаемое значение Возвращает позицию самого старшего установленного бита в битмапе, иначе — 0 UInt64 Примеры Пример использования
Query
SELECT bitmapMax(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapMin

Добавленный в: v20.1.0 Возвращает позицию наименьшего установленного бита в битмапе. Если ни один бит не установлен, возвращает UINT32_MAX (UINT64_MAX, если битмап содержит более 2^64 бит). Синтаксис
bitmapMin(bitmap)
Аргументы Возвращаемое значение Возвращает позицию наименьшего установленного бита в битмапе или UINT32_MAX/UINT64_MAX UInt64 Примеры Пример использования
Query
SELECT bitmapMin(bitmapBuild([3, 5, 2, 6])) AS res;
Response
┌─res─┐
│   2 │
└─────┘

bitmapOr

Добавленный в: v20.1.0 Вычисляет логическое объединение (OR) двух битмапов. Синтаксис
bitmapOr(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает битмап, содержащий биты, установленные хотя бы в одном из входных битмапов AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapOr(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapOrCardinality

Добавленный в: v20.1.0 Возвращает мощность результата логической операции OR для двух битмапов. Синтаксис
bitmapOrCardinality(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает число установленных битов в объединении двух битмапов UInt64 Примеры Пример использования
Query
SELECT bitmapOrCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   5 │
└─────┘

bitmapSubsetInRange

Добавленный в: v20.1.0 Возвращает подмножество битмапа, содержащее только биты, установленные в указанном диапазоне [start, end). Используется индексация с 1. Синтаксис
bitmapSubsetInRange(bitmap, start, end)
Аргументы
  • bitmap — битмап, из которого извлекается подмножество. AggregateFunction(groupBitmap, T). - start — начало диапазона (включительно). UInt* - end — конец диапазона (исключая). UInt*
Возвращаемое значение Возвращает битмап, содержащий только установленные биты из указанного диапазона AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapSubsetInRange(bitmapBuild([1, 2, 3, 4, 5]), 2, 5)) AS res;
Response
┌─res───────┐
│ [2, 3, 4] │
└───────────┘

bitmapSubsetLimit

Добавленный в: v20.1.0 Возвращает подмножество битмапа, начиная с позиции range_start, содержащее не более cardinality_limit установленных бит. Используется индексация с единицы. Синтаксис
bitmapSubsetLimit(bitmap, range_start, cardinality_limit)
Аргументы
  • bitmap — объект битмапа. AggregateFunction(groupBitmap, T). - range_start — начало диапазона (включительно). UInt32 - cardinality_limit — максимальная мощность подмножества. UInt32
Возвращаемое значение Возвращает битмап, содержащий не более cardinality_limit установленных битов, начиная с range_start AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapSubsetLimit(bitmapBuild([1, 5, 3, 2, 8]), 3, 2)) AS res;
Response
┌─res────┐
│ [5, 3] │
└────────┘

bitmapToArray

Добавленный в: v20.1.0 Преобразует битмап в массив беззнаковых целых чисел. Это функция, обратная bitmapBuild. Синтаксис
bitmapToArray(bitmap)
Аргументы Возвращаемое значение Массив беззнаковых целых чисел, содержащихся в битмапе Array(UInt*) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapBuild([1, 2, 3, 4, 5])) AS res;
Response
┌─res─────────────┐
│ [1, 2, 3, 4, 5] │
└─────────────────┘

bitmapTransform

Добавленный в: v20.1.0 Изменяет до N битов в битмапе, заменяя указанные значения битов в from_array соответствующими значениями из to_array. Синтаксис
bitmapTransform(bitmap, from_array, to_array)
Аргументы
  • bitmap — объект битмапа. AggregateFunction(groupBitmap, T). - from_array — Array исходных установленных битов, которые нужно заменить. Array(T). - to_array — Array новых установленных битов, на которые выполняется замена. Array(T).
Возвращаемое значение Возвращает битмап с элементами, преобразованными по заданному соответствию AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapTransform(bitmapBuild([1, 2, 3, 4, 5]), [2, 4], [20, 40])) AS res;
Response
┌─res───────────────┐
│ [1, 3, 5, 20, 40] │
└───────────────────┘

bitmapXor

Добавленный в: v20.1.0 Вычисляет симметрическую разность (XOR) двух битмапов. Синтаксис
bitmapXor(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает битмап, содержащий биты, установленные только в одном из входных битмапов AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(bitmapXor(bitmapBuild([1, 2, 3]), bitmapBuild([3, 4, 5]))) AS res;
Response
┌─res──────────┐
│ [1, 2, 4, 5] │
└──────────────┘

bitmapXorCardinality

Добавленный в: v20.1.0 Возвращает мощность результата XOR (симметрической разности) двух битмапов. Синтаксис
bitmapXorCardinality(bitmap1, bitmap2)
Аргументы Возвращаемое значение Возвращает количество установленных битов в симметрической разности двух битмапов UInt64 Примеры Пример использования
Query
SELECT bitmapXorCardinality(bitmapBuild([1,2,3]), bitmapBuild([3,4,5])) AS res;
Response
┌─res─┐
│   4 │
└─────┘

subBitmap

Добавленный в: v21.9.0 Возвращает подмножество битмапа, начиная с позиции offset. Максимальная мощность возвращаемого битмапа — cardinality_limit. Синтаксис
subBitmap(bitmap, offset, cardinality_limit)
Аргументы
  • bitmap — объект битмапа. AggregateFunction(groupBitmap, T). - offset — количество установленных битов, которые нужно пропустить с начала (отсчёт с нуля). UInt32 - cardinality_limit — максимальное количество установленных битов, включаемых в подмножество. UInt32
Возвращаемое значение Возвращает битмап, содержащий не более limit установленных битов после пропуска offset установленных битов в порядке возрастания AggregateFunction(groupBitmap, T) Примеры Пример использования
Query
SELECT bitmapToArray(subBitmap(bitmapBuild([1, 2, 3, 4, 5]), 2, 2)) AS res;
Response
┌─res────┐
│ [3, 4] │
└────────┘
Последнее изменение 10 июня 2026 г.