数据仓库服务 GAUSSDB(DWS)-聚合函数:hll_add_agg(hll_hashval)

时间:2024-10-21 16:50:41

hll_add_agg(hll_hashval)

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

返回值类型:hll

示例:

  1. 准备数据。
    1
    2
    3
    4
    CREATE TABLE t_id(id int);
    INSERT INTO t_id VALUES(generate_series(1,500));
    CREATE TABLE t_data(a int, c text);
    INSERT INTO t_data SELECT mod(id,2), id FROM t_id;
    
  2. 创建表并指定列为hll。
    1
    CREATE TABLE t_a_c_hll(a int, c hll);
    
  3. 根据a列group by对数据分组,把各组数据加到hll中。
    1
    INSERT INTO t_a_c_hll SELECT a, hll_add_agg(hll_hash_text(c)) FROM t_data GROUP BY a;
    
  4. 得到每组数据中hll的Distinct值。
    1
    2
    3
    4
    5
    6
    SELECT a, #c as cardinality FROM t_a_c_hll order by a;
     a |   cardinality    
    ---+------------------
     0 | 250.741759091658
     1 | 250.741759091658
    (2 rows)
    
support.huaweicloud.com/sqlreference-830-dws/dws_06_0329.html