近似函数

处理大规模数据时,近似函数可以在保证合理准确度的情况下快速返回计算结果,提高数据处理效率。本文介绍云原生数据仓库 AnalyticDB MySQL 版支持的近似函数。

  • APPROX_DISTINCT:返回指定列中不重复值的近似个数。

  • APPROX_PERCENTILE:返回指定列中从小到大排序,位于指定百分比(近似)的结果。

APPROX_DISTINCT

APPROX_DISTINCT(column, [standard_error]);
  • 命令说明:返回指定列中不重复值的近似个数。standard_error为标准误差(可选参数),默认值为0.023,取值范围[0.0040625,0.26000]。建议不要修改standard_error参数值。

  • 返回值类型:BIGINT。

  • 示例:

    查询testage列中不重复值的近似个数。

    SELECT approx_distinct(age) from test;

    返回结果:

    +-----------------------+
    | approx_distinct(age)  |
    +-----------------------+
    |   4                   |
    +-----------------------+ 
    说明

    APPROX_DISTINCT函数的返回值为近似值,示例仅供参考。

APPROX_PERCENTILE

APPROX_PERCENTILE(column, percentage);
  • 命令说明:返回指定列中从小到大排序,位于指定百分比(近似)的结果,该函数不会对指定列中重复值进行去重。percentage为指定的百分比,取值范围[0,1],例如指定percentage为1时,会返回该列中最大的值。

  • 返回值类型:BIGINT。

  • 示例:

    查询

    SELECT APPROX_PERCENTILE(age, 0.4) FROM test;

    返回结果如下:

    +------------------------------+
    | APPROX_PERCENTILE(age, 0.4)  |
    +------------------------------+
    |   20                         |
    +------------------------------+