• GBase 8c V3.0.0数据类型——HLL函数和操作符(聚合函数)


    1. hll_add_agg(hll_hashval)

    描述:把哈希后的数据按照分组放到hll中。

    返回值类型:hll

    示例:

     --准备数据

    gbase=# create table t_id(id int);

    CREATE TABLE

    gbase=# insert into t_id values(generate_series(1,500));

    INSERT 0 500

    gbase=# create table t_data(a int, c text);

    CREATE TABLE

    gbase=# insert into t_data select mod(id,2), id from t_id;

    INSERT 0 500

    --创建表并指定列为hll

    gbase=# create table t_a_c_hll(a int, c hll);

    CREATE TABLE

    --根据a列group by对数据分组,把各组数据加到hll中

    gbase=# insert into t_a_c_hll select a, hll_add_agg(hll_hash_text(c)) from t_data group by a;

    INSERT 0 2

    --得到每组数据中hll的Distinct值

    gbase=# select a, #c as cardinality from t_a_c_hll order by a;

     a |   cardinality    

    ---+------------------

     0 | 247.862354346299

     1 | 250.908710610377

    (2 rows)

    1. hll_add_agg(hll_hashval, int32 log2m)

    描述:把哈希后的数据按照分组放到hll中,并指定参数log2m,取值范围是10到16。若输入-1或者NULL,则采用内置默认值。

    返回值类型:hll

    示例:

     gbase=# select hll_cardinality(hll_add_agg(hll_hash_text(c), 12)) from t_data;

     hll_cardinality  

    ------------------

     497.965240179228

    (1 row)

    1. hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit)

    描述:把哈希后的数据按照分组放到hll中,依次指定参数log2m、log2explicit。log2explicit取值范围是0到12,0表示直接跳过Explicit模式。该参数可以用来设置Explicit模式的阈值大小,在数据段长度达到2log2explicit后切换为Sparse模式或者Full模式。若输入-1或者NULL,则log2explicit采用内置默认值。

    返回值类型:hll

    示例:

     gbase=# select hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 1)) from t_data;

     hll_cardinality  

    ------------------

     498.496062953313

    (1 row)

    1. hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit, int64 log2sparse)

    描述:把哈希后的数据按照分组放到hll中,依次指定参数log2m、log2explicit、log2sparse。log2sparse取值范围是0到14,0表示直接跳过Sparse模式。该参数可以用来设置Sparse模式的阈值大小,在数据段长度达到2log2sparse后切换为Full模式。若输入-1或者NULL,则log2sparse采用内置默认值。

    返回值类型:hll

    示例:

     gbase=# select hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 6, 10)) from t_data;

     hll_cardinality  

    ------------------

     498.496062953313

    (1 row)

    1. hll_add_agg(hll_hashval, int32 log2m, int32 log2explicit, int64 log2sparse, int32 duplicatecheck)

    描述:把哈希后的数据按照分组放到hll中, 依次制定参数log2m、log2explicit、log2sparse、duplicatecheck,duplicatecheck取值范围是0或者1,表示是否开启该模式,默认情况下该模式会关闭。若输入-1或者NULL,则duplicatecheck采用内置默认值。

    返回值类型:hll

    示例:

     gbase=# select hll_cardinality(hll_add_agg(hll_hash_text(c), NULL, 6, 10, -1)) from t_data;

     hll_cardinality  

    ------------------

     498.496062953313

    (1 row)

    1. hll_union_agg(hll)

    描述:将多个hll类型数据union成一个hll。

    返回值类型:hll

    示例:

     --将各组中的hll数据union成一个hll,并计算distinct值。

    gbase=# select #hll_union_agg(c) as cardinality from t_a_c_hll;

       cardinality    

    ------------------

     498.496062953313

    (1 row)

    当两个或者多个hll数据结构做union的时候,必须要保证其中每一个hll里面的精度参数一样,否则将不可以进行union。同样的约束也适用于函数hll_union(hll,hll)。

  • 相关阅读:
    机器人到达指定位置的方法数问题
    2024年跳槽面试心得
    AI创作教程之 如何在本地 PC 上运行稳定的 Diffusion 2.0 (无代码指南)
    【刷题笔记10.6】LeetCode:汉明距离
    微服务组件
    华为云Stack首席架构师:打造“称手”的数字化工具,答好政企IT数字化转型这道必选题
    【前端小tip】深拷贝不能处理函数的解决方法,文末包含所有深拷贝常见问题的解决方法
    anzo capital昂首资本:MT4和MT5 EA测试的主要区别
    每日一题 2586. 统计范围内的元音字符串数(简单)
    202204 RAC环境归档满
  • 原文地址:https://blog.csdn.net/futianxia061112/article/details/125439598