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