跳到主要内容
跳到主要内容

位图函数

位图可以通过两种方式构建。第一种方式是通过聚合函数 groupBitmap-State 进行构建,另一种方式是从数组对象构建位图。

bitmapBuild

从无符号整数数组构建位图。

语法

参数

  • array – 无符号整数数组。

示例

bitmapToArray

将位图转换为整数数组。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapSubsetInRange

返回位图中位于值区间内的子集。

语法

参数

  • bitmap位图对象
  • range_start – 范围开始(包含)。 UInt32
  • range_end – 范围结束(不包含)。 UInt32

示例

结果:

bitmapSubsetLimit

返回具有最小位值 range_start 并且最多包含 cardinality_limit 元素的位图子集。

语法

参数

  • bitmap位图对象
  • range_start – 范围开始(包含)。 UInt32
  • cardinality_limit – 子集的最大基数。 UInt32

示例

结果:

subBitmap

返回位图的一个子集,从位置 offset 开始。返回的位图最大基数为 cardinality_limit

语法

参数

  • bitmap – 位图。 位图对象
  • offset – 子集的第一个元素的位置。 UInt32
  • cardinality_limit – 子集中的最大元素数量。 UInt32

示例

结果:

bitmapContains

检查位图是否包含某个元素。

参数

返回值

  • 0 — 如果 bitmap 不包含 needleUInt8
  • 1 — 如果 bitmap 包含 needleUInt8

示例

结果:

bitmapHasAny

检查两个位图是否相交。

如果 bitmap2 恰好包含一个元素,考虑使用 bitmapContains,因为它的效率更高。

语法

参数

  • bitmap1 – 位图对象 1。
  • bitmap2 – 位图对象 2。

返回值

  • 1,如果 bitmap1bitmap2 至少有一个共享元素。
  • 0,否则。

示例

结果:

bitmapHasAll

如果第一个位图包含第二个位图的所有元素,则返回 1,否则返回 0。 如果第二个位图为空,则返回 1。

另请参见 hasAll(array, array)

语法

参数

  • bitmap1 – 位图对象 1。
  • bitmap2 – 位图对象 2。

示例

结果:

bitmapCardinality

返回位图的基数。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapMin

计算位图中最小的位值,如果位图为空,则返回 UINT32_MAX。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapMax

计算位图中最大的位值,如果位图为空,则返回 0。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapTransform

在位图中替换最多 N 位。第 i 个替换位的旧值和新值由 from_array[i]to_array[i] 给出。

结果依赖于 from_arrayto_array 的数组排序。

语法

参数

  • bitmap – 位图对象。
  • from_array – UInt32 数组。对于索引在范围 [0, from_array.size()) 中的值,如果位图包含 from_array[idx],则将其替换为 to_array[idx]。
  • to_array – 与 from_array 相同大小的 UInt32 数组。

示例

结果:

bitmapAnd

计算两个位图的逻辑与。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapOr

计算两个位图的逻辑或。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapXor

对两个位图进行异或操作。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndnot

计算两个位图的逻辑与并对结果取反。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndCardinality

返回两个位图逻辑与的基数。

语法

参数

  • bitmap – 位图对象。

示例

结果:

bitmapOrCardinality

返回两个位图逻辑或的基数。

参数

  • bitmap – 位图对象。

示例

结果:

bitmapXorCardinality

返回两个位图异或的基数。

参数

  • bitmap – 位图对象。

示例

结果:

bitmapAndnotCardinality

返回两个位图的 AND-NOT 操作的基数。

参数

  • bitmap – 位图对象。

示例

结果: