Функции битовых карт
Битовые карты могут быть построены двумя способами. Первый способ — это использование агрегатной функции 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— Начало диапазона (включительно).UInt32cardinality_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— Количество установленных битов, которые нужно пропустить от начала (нумерация с нуля).UInt32cardinality_limit— Максимальное число установленных битов, которые нужно включить в подмножество.UInt32
Возвращаемое значение
Возвращает битовую карту, содержащую максимум limit установленных битов, начиная после пропуска offset установленных битов по порядку возрастания AggregateFunction(groupBitmap, T)
Примеры
Пример использования