📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

Bitmap 函数



本页按功能分类,全面概述 TiDB Cloud Lake 中的 Bitmap 函数,便于参考。

Bitmap 操作

函数描述示例
BITMAP_AND对两个 bitmap 执行按位 AND 运算BITMAP_AND(BUILD_BITMAP([1,4,5]), BUILD_BITMAP([4,5])) → {4,5}
BITMAP_OR对两个 bitmap 执行按位 OR 运算BITMAP_OR(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])) → {1,2,3}
BITMAP_XOR对两个 bitmap 执行按位 XOR 运算BITMAP_XOR(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → {1,4}
BITMAP_NOT对一个 bitmap 执行按位 NOT 运算BITMAP_NOT(BUILD_BITMAP([1,2,3]), 5) → {0,4}
BITMAP_AND_NOT返回第一个 bitmap 中存在但第二个 bitmap 中不存在的元素BITMAP_AND_NOT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3])) → {1}
BITMAP_UNION将多个 bitmap 合并为一个BITMAP_UNION([BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])]) → {1,2,3}
BITMAP_INTERSECT返回多个 bitmap 的交集BITMAP_INTERSECT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])]) → {2,3}

Bitmap 信息

函数描述示例
BITMAP_COUNT返回 bitmap 中的元素个数BITMAP_COUNT(BUILD_BITMAP([1,2,3])) → 3
BITMAP_CONTAINS检查 bitmap 是否包含指定元素BITMAP_CONTAINS(BUILD_BITMAP([1,2,3]), 2) → true
BITMAP_HAS_ANY检查一个 bitmap 是否包含另一个 bitmap 中的任意元素BITMAP_HAS_ANY(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([3,4])) → true
BITMAP_HAS_ALL检查一个 bitmap 是否包含另一个 bitmap 中的所有元素BITMAP_HAS_ALL(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3])) → true
BITMAP_MIN返回 bitmap 中的最小元素BITMAP_MIN(BUILD_BITMAP([1,2,3])) → 1
BITMAP_MAX返回 bitmap 中的最大元素BITMAP_MAX(BUILD_BITMAP([1,2,3])) → 3
BITMAP_CARDINALITY返回 bitmap 中的元素个数BITMAP_CARDINALITY(BUILD_BITMAP([1,2,3])) → 3

Bitmap 计数操作

函数描述示例
BITMAP_AND_COUNT返回两个 bitmap 按位 AND 结果中的元素个数BITMAP_AND_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → 2
BITMAP_OR_COUNT返回两个 bitmap 按位 OR 结果中的元素个数BITMAP_OR_COUNT(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])) → 3
BITMAP_XOR_COUNT返回两个 bitmap 按位 XOR 结果中的元素个数BITMAP_XOR_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])) → 2
BITMAP_NOT_COUNT返回一个 bitmap 按位 NOT 结果中的元素个数BITMAP_NOT_COUNT(BUILD_BITMAP([1,2,3]), 5) → 2
INTERSECT_COUNT返回多个 bitmap 交集中的元素个数INTERSECT_COUNT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])]) → 2

Bitmap 子集操作

函数描述示例
SUB_BITMAP提取 bitmap 的一个子集SUB_BITMAP(BUILD_BITMAP([1,2,3,4,5]), 1, 3) → {2,3,4}
BITMAP_SUBSET_IN_RANGE返回 bitmap 在指定范围内的子集BITMAP_SUBSET_IN_RANGE(BUILD_BITMAP([1,2,3,4,5]), 2, 4) → {2,3}
BITMAP_SUBSET_LIMIT返回带限制条件的 bitmap 子集BITMAP_SUBSET_LIMIT(BUILD_BITMAP([1,2,3,4,5]), 2, 2) → {3,4}

文档内容是否有帮助?