ビットマップ関数
ビットマップは二つの方法で構築できます。最初の方法は、-State を使用した集約関数 groupBitmap によって構築され、二つ目の方法は Array オブジェクトからビットマップを構築することです。
bitmapAnd
Introduced in: v20.1
二つのビットマップの論理積 (AND) を計算します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
両方の入力ビットマップに存在するビットを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapAndCardinality
Introduced in: v20.1
二つのビットマップの論理積 (AND) の基数を返します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
二つのビットマップの交差部分におけるセットビットの数を返します UInt64
例
使用例
bitmapAndnot
Introduced in: v20.1
二つのビットマップの論理積を計算し、結果を否定します (AND-NOT)。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
最初のビットマップには存在するが、二番目のビットマップには存在しないセットビットを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapAndnotCardinality
Introduced in: v20.1
二つのビットマップの AND-NOT 操作の基数を返します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
bitmap1 AND-NOT bitmap2 の結果のセットビットの数を返します UInt64
例
使用例
bitmapBuild
Introduced in: v20.1
符号なし整数配列からビットマップを構築します。これは、bitmapToArray 関数の逆です。 bitmapToArray
構文
引数
array— 符号なし整数配列。Array(UInt*)
返される値
提供された配列からビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapCardinality
Introduced in: v20.1
ビットマップ内のセットビットの数 (基数) を返します。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
ビットマップ内のセットビットの数を返します UInt64
例
使用例
bitmapContains
Introduced in: v20.1
ビットマップが特定の要素を含んでいるかをチェックします。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -value— チェックする要素。 (U)Int8/16/32/64
返される値
ビットマップが指定された値を含む場合は 1 を、それ以外の場合は 0 を返します UInt8
例
使用例
bitmapHasAll
Introduced in: v20.1
最初のビットマップが二番目のビットマップのすべてのセットビットを含んでいるかをチェックします。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
二番目のビットマップのすべてのセットビットが最初のビットマップに存在する場合は 1 を、それ以外の場合は 0 を返します UInt8
例
使用例
bitmapHasAny
Introduced in: v20.1
最初のビットマップが二番目のビットマップのいずれかのセットビットを含んでいるかをチェックします。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
二番目のビットマップのいずれかのビットが最初のビットマップに存在する場合は 1 を、それ以外の場合は 0 を返します UInt8
例
使用例
bitmapMax
Introduced in: v20.1
ビットマップ内で最も大きいビットがセットされている位置を返します。ビットマップが空である場合は 0 を返します。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
ビットマップ内で最も大きいビットがセットされている位置を返します。それ以外の場合は 0 を返します UInt64
例
使用例
bitmapMin
Introduced in: v20.1
ビットマップ内で最も小さいビットがセットされている位置を返します。すべてのビットが unset の場合は UINT32_MAX (ビットマップが 2^64 ビットを超える場合は UINT64_MAX)を返します。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
ビットマップ内で最も小さいビットがセットされている位置を返します。それ以外の場合は UINT32_MAX/UINT64_MAX を返します UInt64
例
使用例
bitmapOr
Introduced in: v20.1
二つのビットマップの論理和 (OR) を計算します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
いずれかの入力ビットマップに存在するセットビットを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapOrCardinality
Introduced in: v20.1
二つのビットマップの論理和 (OR) の基数を返します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
二つのビットマップの和におけるセットビットの数を返します UInt64
例
使用例
bitmapSubsetInRange
Introduced in: v20.1
指定された範囲 [start, end) に存在するセットビットのみを含むビットマップのサブセットを返します。1ベースのインデックスを使用します。
構文
引数
bitmap— サブセットを抽出するビットマップ。AggregateFunction(groupBitmap, T)。 -start— 範囲の開始 (含む)。UInt*-end— 範囲の終了 (含まない)。UInt*
返される値
指定された範囲のセットビットのみを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapSubsetLimit
Introduced in: 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
Introduced in: v20.1
ビットマップを符号なし整数の配列に変換します。これは、bitmapBuild 関数の逆です。 bitmapBuild
構文
引数
bitmap— 変換するビットマップ。AggregateFunction(groupBitmap, T)。
返される値
ビットマップに含まれる符号なし整数の配列を返します Array(UInt*)
例
使用例
bitmapTransform
Introduced in: v20.1
ビットマップ内の最大 N ビットを、from_array 中の特定のビット値を to_array の対応するものと交換することによって変更します。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -from_array— 置き換えられる元のセットビットの配列。Array(T)。 -to_array— 置き換えに使用する新しいセットビットの配列。Array(T)。
返される値
指定されたマッピングに従って変換された要素を持つビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapXor
Introduced in: v20.1
二つのビットマップの対称差 (XOR) を計算します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
双方の入力ビットマップに存在するが、両方には存在しないセットビットを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例
bitmapXorCardinality
Introduced in: v20.1
二つのビットマップの XOR (対称差) の基数を返します。
構文
引数
bitmap1— 最初のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -bitmap2— 二番目のビットマップオブジェクト。AggregateFunction(groupBitmap, T)。
返される値
二つのビットマップの対称差におけるセットビットの数を返します UInt64
例
使用例
subBitmap
Introduced in: v21.9
ビットマップのサブセットを返し、位置 offset から開始します。返されるビットマップの最大基数は cardinality_limit です。
構文
引数
bitmap— ビットマップオブジェクト。AggregateFunction(groupBitmap, T)。 -offset— 最初からスキップするセットビットの数 (ゼロベース)。UInt32-cardinality_limit— サブセットに含めるセットビットの最大数。UInt32
返される値
昇順で offset セットビットをスキップした後、最大 limit セットビットを含むビットマップを返します AggregateFunction(groupBitmap, T)
例
使用例