全部产品
Search
文档中心

实时数仓Hologres:有序聚集函数

更新时间:Mar 28, 2024

交互式分析(Hologres)兼容PostgreSQL,使用标准的PostgreSQL语法开发。

当前Hologres版本支持的函数是PostgreSQL的一个子集,Hologres已支持的有序聚集函数列表如下。

说明

percentile_contpercentile_disc函数与WITHIN GROUP (ORDER BY col)语句一起连用时,WITHIN GROUP (ORDER BY col)中的字段只支持FLOAT4和FLOAT8类型,因此需要将其手动改写为WITHIN GROUP (ORDER BY col::float8)

函数

描述

直接参数类型

聚集参数类型

示例

返回类型

mode() WITHIN GROUP (ORDER BY sort_expression)

返回最频繁的输入值。如果有多个频度相同的值,则返回第一个。

任何可排序类型。

  • 示例

    select mode() WITHIN GROUP (ORDER BY user_id) from testtable;

  • 结果

    293890

与排序表达式相同。

percentile_cont(fraction) WITHIN GROUP (ORDER BY sort_expression)

连续百分率:返回一个对应于排序中指定分数的值,如有必要就在相邻的输入项之间插值。

double precision

double precision或者interval

  • 示例

    select percentile_cont(0.5) WITHIN GROUP (ORDER BY cust_id) from testtable;

  • 结果

    1105639996.5

与排序表达式相同

percentile_cont(fractions) WITHIN GROUP (ORDER BY sort_expression)

多重连续百分率:返回一个匹配fractions参数形状的结果数组, 其中每一个非空元素都用对应于那个百分率的值替换。

double precision[]

double precision或者interval

  • 示例

    select percentile_cont(0.5) WITHIN GROUP (ORDER BY member_id) from testtable;

  • 结果

    96727903.5

排序表达式类型的数组。

percentile_disc(fraction) WITHIN GROUP (ORDER BY sort_expression)

离散百分率:返回第一个在排序中位置等于或者超过指定分数的输入值。

double precision

一种可排序类型。

  • 示例

    select percentile_disc(0.6) WITHIN GROUP (ORDER BY impression_id) from testtable;

  • 结果

    0.0

与排序表达式相同

percentile_disc(fractions) WITHIN GROUP (ORDER BY sort_expression)

多重离散百分率:返回一个匹配fractions参数形状的结果数组, 其中每一个非空元素都用对应于那个百分率的输入值替换。

double precision[]

任何可排序类型。

  • 示例

    select percentile_disc(0.6) WITHIN GROUP (ORDER BY impr_id) from testtable;

  • 结果

    0.0

排序表达式类型的数组。