Функции битовых карт

Битовые карты можно создавать следующими способами:

  • с помощью агрегатной функции groupBitmap с суффиксом -State;

  • путем построения битовой карты из массива.

Набор поддерживаемых функций RQL и их поведение зависят от версии установленного ClickHouse. Если функция не поддерживается в используемой версии ClickHouse, она также не будет доступна в RQL.

Ознакомиться с актуальным списком функций и их поведением можно в официальной документации ClickHouse.

Обратите внимание, что для функций в официальной документации ClickHouse может быть указана версия, в которой эти функции были введены. Это позволит определить, доступна ли рассматриваемая функция в вашей версии ClickHouse.

Функции битовых карт
Функция Описание

bitmapAnd(a, b)

Возвращает битовую карту, содержащую биты, установленные в обеих битовых картах a и b.

bitmapAndCardinality(a, b)

Возвращает количество битов в пересечении битовых карт a и b.

bitmapAndnot(a, b)

Возвращает битовую карту, содержащую биты, присутствующие в битовой карте a, но отсутствующие в битовой карте b.

bitmapAndnotCardinality(a, b)

Возвращает количество битов в разности битовых карт a и b.

bitmapBuild(array)

Возвращает битовую карту, построенную из массива array.

bitmapCardinality(a)

Возвращает количество установленных битов в битовой карте a.

bitmapContains(a, b)

Возвращает 1, если битовая карта a содержит значение b, и 0 в противном случае.

bitmapHasAll(a, b)

Возвращает 1, если все установленные биты битовой карты b присутствуют в битовой карте a, и 0 в противном случае.

bitmapHasAny(a, b)

Возвращает 1, если хотя бы один бит битовой карты b присутствует в битовой карте a, и 0 в противном случае.

bitmapMax(a)

Возвращает позицию наибольшего установленного бита в битовой карте или 0, если битовая карта пуста.

bitmapMin(a)

Возвращает позицию наименьшего установленного бита в битовой карте. Если все биты сброшены, функция возвращает:

  • UINT32_MAX, если битовая карта содержит до 264 бит;

  • UINT64_MAX, если битовая карта содержит 264 бит или больше.

bitmapOr(a, b)

Возвращает битовую карту, содержащую биты, установленные хотя бы в одной из битовых карт a и b.

bitmapOrCardinality(a, b)

Возвращает количество установленных единичных битов в объединении двух объектов битовых карт a и b.

bitmapSubsetInRange(a, start, end)

Возвращает битовую карту, содержащую биты битовой карты a в диапазоне от start (включительно) до end (исключительно). Индексация ведется с единицы.

bitmapSubsetLimit(a, range_start, cardinality_limit)

Возвращает битовую карту, содержащую биты битовой карты a начиная с позиции range_start, с количеством установленных битов не более, чем cardinality_limit. Индексация ведется с единицы.

bitmapToArray(a)

Возвращает массив беззнаковых целых чисел из битовой карты a.

bitmapTransform(a, from_array, to_array)

Возвращает битовую карту, преобразованную из битовой карты a путем замены значений битов из массива from_array соответствующими значениями из массива to_array.

bitmapXor(a, b)

Возвращает битовую карту, которая содержит биты, присутствующие только в одной из входных битовых карт a и b.

bitmapXorCardinality(a, b)

Возвращает количество установленных битов в симметрической разности битовых карт a и b.

subBitmap(a, offset, limit)

Возвращает битовую карту, содержащую биты битовой карты a начиная с позиции offset, с количеством установленных битов не более чем limit.

Была ли полезна эта страница?

Обратная связь