跳到主要内容

位图(Bitmap)函数

本页面全面介绍 Databend 中的位图函数,按功能分类以便查阅。

位图操作

函数描述示例
BITMAP_AND对两个位图执行按位与BITMAP_AND(BUILD_BITMAP([1,4,5]), BUILD_BITMAP([4,5])){4,5}
BITMAP_OR对两个位图执行按位或BITMAP_OR(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])){1,2,3}
BITMAP_XOR对两个位图执行按位异或BITMAP_XOR(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])){1,4}
BITMAP_NOT对位图执行按位非BITMAP_NOT(BUILD_BITMAP([1,2,3]), 5){0,4}
BITMAP_AND_NOT返回第一个位图存在但第二个位图不存在的元素BITMAP_AND_NOT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3])){1}
BITMAP_UNION合并多个位图BITMAP_UNION([BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3])]){1,2,3}
BITMAP_INTERSECT返回多个位图的交集BITMAP_INTERSECT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])]){2,3}

位图信息

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

位图计数操作

函数描述示例
BITMAP_AND_COUNT返回两个位图按位与的元素数量BITMAP_AND_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4]))2
BITMAP_OR_COUNT返回两个位图按位或的元素数量BITMAP_OR_COUNT(BUILD_BITMAP([1,2]), BUILD_BITMAP([2,3]))3
BITMAP_XOR_COUNT返回两个位图按位异或的元素数量BITMAP_XOR_COUNT(BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4]))2
BITMAP_NOT_COUNT返回位图按位非的元素数量BITMAP_NOT_COUNT(BUILD_BITMAP([1,2,3]), 5)2
INTERSECT_COUNT返回多个位图交集的元素数量INTERSECT_COUNT([BUILD_BITMAP([1,2,3]), BUILD_BITMAP([2,3,4])])2

位图子集操作

函数描述示例
SUB_BITMAP提取位图子集SUB_BITMAP(BUILD_BITMAP([1,2,3,4,5]), 1, 3){2,3,4}
BITMAP_SUBSET_IN_RANGE返回指定范围内的位图子集BITMAP_SUBSET_IN_RANGE(BUILD_BITMAP([1,2,3,4,5]), 2, 4){2,3}
BITMAP_SUBSET_LIMIT返回带数量限制的位图子集BITMAP_SUBSET_LIMIT(BUILD_BITMAP([1,2,3,4,5]), 2, 2){3,4}
欢迎体验 Databend Cloud

基于 Rust + 对象存储构建的新一代多模态数仓,一个平台即可进行 BI、向量、全文检索及地理空间分析。

支持标准 SQL,自动弹性伸缩,助您快速构建现代化数据平台。

注册即领 ¥200 代金券。

注册体验