Hologres支持的通用聚合函数有哪些 |
您所在的位置:网站首页 › SQL返回最大值对应的字段名 › Hologres支持的通用聚合函数有哪些 |
语法 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 |