BITMAP_SUBSET_LIMIT
功能描述
BITMAP_SUBSET_LIMIT
BITMAP_SUBSET_LIMIT
函数从 bitmap 中提取子集:从值
range_start
range_start
开始,最多取
cardinality_limit
cardinality_limit
个元素。
语法
bitmap_subset_limit(bitmap, range_start, cardinality_limit)
参数说明
bitmap
bitmap
:输入的 bitmap 类型数据
range_start
range_start
:起始值(包含),从该值开始向后取元素
cardinality_limit
cardinality_limit
:最多取多少个元素
返回结果
返回一个 bitmap 类型数据,包含从
range_start
range_start
起最多
cardinality_limit
cardinality_limit
个元素。
使用示例
-- 从值 1 开始取 2 个元素:{1,2,3} 中从 1 起取 2 个 → [1, 2]
SELECT bitmap_to_array(bitmap_subset_limit(bitmap_build(array(2,1,3)), 1, 2));
-- ["1", "2"]
-- 从值 3 开始取 4 个元素
SELECT bitmap_to_array(bitmap_subset_limit(bitmap_build(array(1,2,3,4,5,6,7,8,9,10)), 3, 4));
-- ["3", "4", "5", "6"]
与 bitmap_subset_in_range 的区别
| 函数 | 第三个参数含义 | 示例 |
|---|
bitmap_subset_in_range(bm, start, end)
bitmap_subset_in_range(bm, start, end) | 结束值(不含) | (bm, 3, 7)
(bm, 3, 7) → 值在 [3,7) 的元素 |
bitmap_subset_limit(bm, start, limit)
bitmap_subset_limit(bm, start, limit) | 元素个数上限 | (bm, 3, 4)
(bm, 3, 4) → 从值 3 起最多 4 个元素 |