Hologres支持的通用聚合函数有哪些

您所在的位置:网站首页 SQL返回最大值对应的字段名 Hologres支持的通用聚合函数有哪些

Hologres支持的通用聚合函数有哪些

2024-07-17 10:31| 来源: 网络整理| 查看: 265

语法

APPROX_COUNT_DISTINCT函数用于计算某一列去重后的行数,结果只能返回一个值,并且该值为近似值。

APPROX_COUNT_DISTINCT ( )

参数说明如下表所示。

参数

描述

column

需要近似计算去重后行数的列。

APPROX_COUNT_DISTINCT采用HyperLogLog基数估计的方式进行非精确的COUNT DISTINCT计算。非精确的COUNT DISTINCT计算能提升查询性能,尤其是对于column的离散值比较大的情况,误差率平均可以控制在0.1%-1%以内。该函数适用于对性能敏感并且可以接受误差的场景。

同时,您也可以通过COUNT DISTINCT ( column )的方式进行精确的COUNT DISTINCT计算,使用时资源开销会比较大。

调整误差率

通过使用以下参数调整误差率。

SET hg_experimental_approx_count_distinct_precision = 20;

支持取值范围为[12,20],默认值为17。

精度参数含义为HyperLogLog算法的分桶bit位个数,参数越大,代表分桶越多,理论精度越高。

精度参数取值越高,计算时间和内存开销也会相应增大,但都远远小于精确的COUNT DISTINCT ( column )语句带来的开销,因此,推荐选用APPROX_COUNT_DISTINCT替换COUNT DISTINCT ( column )。

当精度参数设置为17以上时,Hologres采用HyperLogLog++算法,会对返回值做误差修正,以进一步降低误差、稳定误差。例如hg_experimental_approx_count_distinct_precision取值为20时,多数情况下,可以降低到0.01-0.2%不等的误差率。

示例

计算O_CUSTKEY列去重后行数的近似值,示例语句如下。

SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS; --全局设置精度20,计算O_CUSTKEY列去重后行数的近似值 ALTER DATABASE dbname SET hg_experimental_approx_count_distinct_precision = 20; SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS; --在Session级别设置精度20 SET hg_experimental_approx_count_distinct_precision = 20; SELECT APPROX_COUNT_DISTINCT ( O_CUSTKEY ) FROM ORDERS;


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3