GROUP_BITMAP_MERGE 函数

简介

GROUP_BITMAP_MERGE
GROUP_BITMAP_MERGE
函数用于合并多个中间状态的
Bitmap
Bitmap
对象,最终返回合并后的基数。该函数在处理大规模数据集时非常高效,尤其适用于需要对多个
Bitmap
Bitmap
中间状态进行合并的场景。

语法

group_bitmap_merge(bitmap)

参数

  • bitmap
    bitmap
    BITMAP
    BITMAP
    类型的中间状态,表示需要合并的
    Bitmap
    Bitmap
    状态。

返回值

返回一个

INT
INT
类型的结果,表示合并后
Bitmap
Bitmap
基数(即并集中不重复整数值的个数)。

使用示例

示例 1:合并由多个数组构建的

Bitmap
Bitmap
数据并返回基数:

SELECT group_bitmap_merge(bitmap_build(v)) AS res FROM VALUES (ARRAY(1,2,3,4,5,6,7,8,9,10)), (ARRAY(6,7,8,9,10,11,12,13,14,15)), (ARRAY(2,4,6,8,10,12)) AS t(v); +-----+ | res | +-----+ | 15 | +-----+

示例 2:与

group_bitmap_state
group_bitmap_state
配合实现两阶段聚合

先用

group_bitmap_state
group_bitmap_state
按分组生成中间状态,再用
group_bitmap_merge
group_bitmap_merge
合并所有分组的结果:

SELECT group_bitmap_merge(state) AS total FROM ( SELECT c, group_bitmap_state(v) AS state FROM VALUES ('a', 1), ('a', 2), ('b', 2), ('b', 3) AS t(c, v) GROUP BY c ); +-------+ | total | +-------+ | 3 | +-------+

联系我们
预约咨询
微信咨询
电话咨询