You need to enable JavaScript to run this app.
导航

估算函数

最近更新时间2024.01.22 17:18:38

首次发布时间2024.01.22 17:18:38

本文介绍日志服务支持的估算函数语法及常见场景的使用示例。

函数列表

说明

在日志服务分析语句(SQL 语句)中,需要使用单引号('')包裹代表字符串的字符,无符号包裹或被双引号("")包裹的字符为字段名或列名。例如'time' 代表字符串,time"time" 代表字段名或列名。

函数名称

函数语法

说明

APPROX_PERCENTILE 函数

approx_percentile(KEY, percentage)

对一组值进行正序排列,返回大约处于某百分位的 KEY 值。

approx_percentile(KEY, array[percentage01, percentage02...])

对一组值进行正序排列,返回大约处于百分位 1、百分位 2 的 KEY 值。

approx_percentile(KEY, weight, percentage)

对一组值和权重的乘积结果进行正序排列,返回大约处于某百分位的 KEY 值。

approx_percentile(KEY, weight, array[percentage01, percentage02...])

对一组值和权重的乘积结果进行正序排列,返回大约处于百分位 1、百分位 2 的 KEY 值。

approx_percentile(KEY, weight, percentage, accuracy)

对一组值和权重的乘积结果进行正序排列,返回大约处于某百分位的值。支持设置准确度。

APPROX_PERCENTILE 函数

APPROX_PERCENTILE 函数用于对一列值进行正序排列,返回大约处于某百分位的 KEY 值。

函数语法

  • 语法格式

    • 对一列值进行正序排列,返回处于指定百分位的 KEY 值。

      APPROX_PERCENTILE(KEY, percentage)
      
    • 对一列值进行正序排列,返回处于百分位 1、百分位 2 的 KEY 值,返回结果为数组格式。

      APPROX_PERCENTILE(KEY, array[percentage01, percentage02...])
      
    • 对一列值和权重的乘积结果进行正序排列,返回大约处于指定百分位的 KEY 值。

      APPROX_PERCENTILE(KEY, weight, percentage)
      
    • 对一列值和权重的乘积结果进行正序排列,返回处于百分位 1、百分位 2 的 KEY 值,返回结果为数组格式。

      APPROX_PERCENTILE(KEY, weight, array[percentage01, percentage02...])
      
    • 对一列值和权重的乘积结果进行正序排列,返回大约处于某百分位的 KEY 值,返回结果为 Double 类型。支持设置准确度。

      APPROX_PERCENTILE(KEY, weight, percentage, accuracy)
      
  • 参数说明

    参数

    说明

    KEY

    字段、表达式,其值为 Double 类型。

    percentage

    百分比值,取值范围为 [0,1]。

    accuracy

    准确度,取值范围为 (0,1)。

    weight

    权重,大于 1 的整数。
    设置权重后,系统根据 KEY 值与权重的乘积结果进行排序。

  • 返回值说明
    返回值为 Double 类型或 Array(double,double) 类型。

函数示例

  • 示例1

    • 场景
      test_double 字段值进行排列后,返回大约处于 50% 位置的 test_double字段值。

    • 日志样例
      图片

    • 检索和分析语句

      *| SELECT APPROX_PERCENTILE(test_double,0.5)
      
    • 检索和分析结果

  • 示例2

    • 场景
      test_double 字段值进行排列后,返回处于 10%、20% 及 70% 位置的 test_double 字段值。

    • 日志样例

    • 检索和分析语句

      *| SELECT APPROX_PERCENTILE(test_double,array[0.1,0.2,0.7])
      
    • 检索和分析结果

  • 示例3

    • 场景
      根据 test_double 字段值与权重的乘积结果对 test_double 字段值进行排列后,返回大约处于 50% 位置的 test_double 字段值。其中,test_double 字段值小于 1.5 时权重为 100,否则权重为 10。

    • 检索和分析语句

      * |
      SELECT
        APPROX_PERCENTILE(
          test_double,case when test_double < 1.5 then 100 else 10 end,
          0.5
        )
      
    • 日志样例

    • 检索和分析结果

  • 示例4

    • 场景
      根据 test_double 字段值与权重的乘积结果对 test_double 字段值进行排列后,返回大约处于 50% 和 90% 位置的 test_double 字段值。其中,test_double 字段值小于 1.5 时权重为 100,否则权重为 10。

    • 日志样例

    • 检索和分析语句

      * |
      SELECT
        APPROX_PERCENTILE(
          test_double,case when test_double < 1.5 then 100 else 10 end,
          array [0.5,0.9]
        )
      
    • 检索和分析结果

  • 示例5

    • 场景
      根据 test_double 字段值与权重的乘积结果对 test_double 字段值进行排列后,返回大约处于 50% 位置的 test_double 字段值,准确度为 0.2。其中,test_double 字段值小于 1.5 时权重为 100,否则权重为 10。

    • 日志样例
      图片

    • 检索和分析语句

      * |
      SELECT
        APPROX_PERCENTILE(
          test_double,case when test_double < 1.5 then 100 else 10 end,
          0.5,
          0.2
        )
      
    • 检索和分析结果