Функции битовых карт
Битовые карты могут быть построены двумя способами. Первый способ — это использование агрегатной функции groupBitmap с -State
, второй способ — это создание битовой карты из объекта Array.
bitmapAnd
Введено в: v20.1
Вычисляет логическое и (AND) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает битовую карту, содержащую биты, присутствующие в обеих входных битовых картах AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapAndCardinality
Введено в: v20.1
Возвращает кардинальность логического и (AND) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает количество установленных битов в пересечении двух битовых карт UInt64
Примеры
Пример использования
bitmapAndnot
Введено в: v20.1
Вычисляет логическое и двух битовых карт и отрицает результат (AND-NOT).
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает битовую карту, содержащую установленные биты, присутствующие в первой битовой карте, но не во второй AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapAndnotCardinality
Введено в: v20.1
Возвращает кардинальность операции AND-NOT двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает количество установленных битов в результате bitmap1 AND-NOT bitmap2
UInt64
Примеры
Пример использования
bitmapBuild
Введено в: v20.1
Строит битовую карту из массива беззнаковых целых чисел. Это противоположно функции bitmapToArray
.
Синтаксис
Аргументы
array
— Массив беззнаковых целых чисел.Array(UInt*)
Возвращаемое значение
Возвращает битовую карту из предоставленного массива AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapCardinality
Введено в: v20.1
Возвращает количество установленных битов (кардинальность) в битовой карте.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает количество установленных битов в битовой карте UInt64
Примеры
Пример использования
bitmapContains
Введено в: v20.1
Проверяет, содержит ли битовая карта конкретный элемент.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.value
— Элемент для проверки. (U)Int8/16/32/64
Возвращаемое значение
Возвращает 1
, если битовая карта содержит указанное значение, в противном случае 0
UInt8
Примеры
Пример использования
bitmapHasAll
Введено в: v20.1
Проверяет, содержит ли первая битовая карта все установленные биты второй битовой карты.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает 1
, если все установленные биты второй битовой карты присутствуют в первой битовой карте, в противном случае 0
UInt8
Примеры
Пример использования
bitmapHasAny
Введено в: v20.1
Проверяет, содержит ли первая битовая карта любые установленные биты второй битовой карты.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает 1
, если любые биты второй битовой карты присутствуют в первой битовой карте, в противном случае 0
UInt8
Примеры
Пример использования
bitmapMax
Введено в: v20.1
Возвращает позицию наибольшего установленного бита в битовой карте или 0
, если битовая карта пуста.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает позицию наибольшего установленного бита в битовой карте, иначе 0
UInt64
Примеры
Пример использования
bitmapMin
Введено в: v20.1
Возвращает позицию наименьшего установленного бита в битовой карте. Если все биты не установлены, возвращает UINT32_MAX
(UINT64_MAX
, если битовая карта содержит более 2^64
бит).
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает позицию наименьшего установленного бита в битовой карте, или UINT32_MAX
/UINT64_MAX
UInt64
Примеры
Пример использования
bitmapOr
Введено в: v20.1
Вычисляет логическое или (OR) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает битовую карту, содержащую установленные биты, присутствующие в любой входной битовой карте AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapOrCardinality
Введено в: v20.1
Возвращает кардинальность логического или (OR) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает количество установленных битов в объединении двух битовых карт UInt64
Примеры
Пример использования
bitmapSubsetInRange
Введено в: v20.1
Возвращает подмножество битовой карты, содержащее только установленные биты в указанном диапазоне [start, end). Использует индексацию, начинающуюся с 1.
Синтаксис
Аргументы
bitmap
— Битовая карта, из которой нужно извлечь подмножество.AggregateFunction(groupBitmap, T)
.start
— Начало диапазона (включительно).UInt*
end
— Конец диапазона (исключительно).UInt*
Возвращаемое значение
Возвращает битовую карту, содержащую только установленные биты в указанном диапазоне AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapSubsetLimit
Введено в: v20.1
Возвращает подмножество битовой карты, начиная с позиции range_start
с максимумом cardinality_limit
установленных битов. Использует индексацию, начинающуюся с 1.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.range_start
— Начало диапазона (включительно).UInt32
cardinality_limit
— Максимальная кардинальность подмножества.UInt32
Возвращаемое значение
Возвращает битовую карту, содержащую максимум cardinality_limit
установленных битов, начиная с range_start
AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapToArray
Введено в: v20.1
Преобразует битовую карту в массив беззнаковых целых чисел. Это противоположно функции bitmapBuild
.
Синтаксис
Аргументы
bitmap
— Битовая карта для преобразования.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает массив беззнаковых целых чисел, содержащихся в битовой карте Array(UInt*)
Примеры
Пример использования
bitmapTransform
Введено в: v20.1
Изменяет до N бит в битовой карте, заменяя специфические значения битов в from_array
соответствующими значениями в to_array
.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.from_array
— Массив оригинально установленных битов, которые нужно заменить.Array(T)
.to_array
— Массив новых установленных битов для замены.Array(T)
.
Возвращаемое значение
Возвращает битовую карту с элементами, преобразованными согласно заданному сопоставлению AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapXor
Введено в: v20.1
Вычисляет симметрическую разность (XOR) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает битовую карту, содержащую установленные биты, присутствующие в любой входной битовой карте, но не в обеих AggregateFunction(groupBitmap, T)
Примеры
Пример использования
bitmapXorCardinality
Введено в: v20.1
Возвращает кардинальность XOR (симметрической разности) двух битовых карт.
Синтаксис
Аргументы
bitmap1
— Первая битовая карта.AggregateFunction(groupBitmap, T)
.bitmap2
— Вторая битовая карта.AggregateFunction(groupBitmap, T)
.
Возвращаемое значение
Возвращает количество установленных битов в симметрической разности двух битовых карт UInt64
Примеры
Пример использования
subBitmap
Введено в: v21.9
Возвращает подмножество битовой карты, начиная с позиции offset
. Максимальная кардинальность возвращаемой битовой карты — cardinality_limit
.
Синтаксис
Аргументы
bitmap
— Битовая карта.AggregateFunction(groupBitmap, T)
.offset
— Количество установленных битов, которые нужно пропустить от начала (нумерация с нуля).UInt32
cardinality_limit
— Максимальное число установленных битов, которые нужно включить в подмножество.UInt32
Возвращаемое значение
Возвращает битовую карту, содержащую максимум limit
установленных битов, начиная после пропуска offset
установленных битов по порядку возрастания AggregateFunction(groupBitmap, T)
Примеры
Пример использования