GROUP_BITMAP_STATE

功能描述

GROUP_BITMAP_STATE
GROUP_BITMAP_STATE
函数用于根据输入的表达式(
expr
expr
)构建一个
BITMAP
BITMAP
类型的结果。该函数通常用于对整数类型的数据进行分组操作,并将每个分组的唯一值转换为一个
bitmap
bitmap
数组。

参数说明

  • expr
    expr
    :待处理的整数类型表达式。

返回类型

  • 返回一个
    BITMAP
    BITMAP
    类型的结果。

使用示例

示例 1:按分组构建 Bitmap 并查看元素

SELECT c, bitmap_to_array(group_bitmap_state(v)) AS bitmap_array FROM VALUES ('a', 1), ('a', 2), ('a', 2), ('b', 3) AS v(c, v) GROUP BY c; +----+--------------+ | c | bitmap_array | +----+--------------+ | a | [1,2] | | b | [3] | +----+--------------+

在这个示例中,

a
a
分组包含两个唯一值 1 和 2,
b
b
分组只包含唯一值 3。

示例 2:与

group_bitmap_merge
group_bitmap_merge
配合实现两阶段聚合

先用

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 | +-------+

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