tencent cloud

文档反馈

估算函数

最后更新时间:2024-01-22 10:52:48
    本文介绍估算函数的基本语法及示例。
    函数名称
    函数语法
    说明
    approx_distinct 函数
    approx_distinct(x)
    估算 x 列的唯一值的个数。
    approx_percentile 函数
    approx_percentile(x,percentage)
    对于 x 列进行正序排序,返回大约处于 percentage 位置的值。
    approx_percentile(x,array[percentage01, percentage02...])
    对于 x 列进行正序排序,返回大约处于 percentage01、percentage02 位置的值。

    approx_distinct 函数

    approx_distinct 函数用于估算字段值中不重复值的个数,估算结果标准误差为2.3%。

    语法

    approx_distinct(x)

    参数说明

    参数
    说明
    x
    参数值为任意数据类型。

    返回值类型

    bigint 类型。

    示例

    使用 count 函数计算 PV,使用 approx_distinct 函数估算不重复的 client_ip 字段值作为 UV。
    * | SELECT count(*) AS PV, approx_distinct(ip) AS UV

    approx_percentile 函数

    approx_percentile 函数用于对目标字段的值进行正序排列,返回大约处于 percentage 位置的数值。采用 T-Digest 算法进行估算,误差较低,能够满足绝大多数统计分析需求,如有需要,可使用 * | select count_if(x<(select approx_percentile(x,percentage))),count(*) 分别精确统计低于 percentage 的字段值个数和总数来验证该统计误差。

    语法

    返回处于 percentage 位置的数值,返回结果为 double 类型。
    approx_percentile(x, percentage)
    返回处于 percentage01、percentage02 位置的数值,返回结果为 array 类型。
    approx_percentile(x, array[percentage01,percentage02...])

    参数说明

    参数
    说明
    x
    参数值为 double 类型。
    percentage
    百分比值,取值范围为[0,1]。

    返回值类型

    double 类型或 array 类型。

    示例

    示例1

    resTotalTime 列进行排列后,返回大约处于50%位置的 resTotalTime 字段的值。
    * | select approx_percentile(resTotalTime,0.5)

    示例2

    resTotalTime 列进行排列后,返回处于10%、20%及60%位置的 resTotalTime 字段的值。
    * | select approx_percentile(resTotalTime, array[0.2,0.4,0.6])
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持