选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 函数百科 / 聚合函数

FUNCTION聚合函数

percentile_disc

计算离散百分位数,即聚合参数值的有序集合中的第一个值,该值在排序中的位置等于或超过指定的fraction。

Computes the discrete percentile, the first value within the ordered set of aggregated argument values whose position in the ordering equals or exceeds the specified fraction.

聚合函数 引入 9.4 现存至 20 devel 2 条签名 0 次签名变更

分组
聚合函数
签名数
2 条
引入版本
9.4
状态
现存
签名变更
未变过
本版来源
本站译文

PostgreSQL 18 手册 · 9.21 聚合函数 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

签名

PostgreSQL 18 里 percentile_disc 的 2 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。说明取自本站手册译文:标「沿用」的借用了另一版的译文,标「EN」的本站暂无译文、按英文原文显示。

  1. percentile_disc ( fraction double precision ) WITHIN GROUP ( ORDER BY anyelement ) → anyelement

    计算离散百分位数,即聚合参数值的有序集合中的第一个值,该值在排序中的位置等于或超过指定的fraction。 聚合参数必须是可排序类型。
  2. percentile_disc ( fractions double precision[] ) WITHIN GROUP ( ORDER BY anyelement ) → anyarray

    计算多个离散百分位数。 结果是一个与fractions参数具有相同维数的数组,每个非空元素都被对应于该百分位数的输入值替换。 聚合参数必须是可排序类型。

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。

  1. PostgreSQL 13 ← 12 手册重排

    这一跳手册重排了函数表的写法,签名文本整体改写,只记函数的增删,不逐条比较签名。

  2. PostgreSQL 9.4 ← 9.3 新增此函数

    PostgreSQL 9.4 起可用

签名矩阵

每条签名在给出了签名的 14 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。

存在 不存在

签名 9.49.59.61011121314151617181920
percentile_disc ( fraction ) WITHIN GROUP (ORDER BY sort_expression) → same as sort expression 存在 存在 存在 存在 存在 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
percentile_disc ( fractions ) WITHIN GROUP (ORDER BY sort_expression) → array of sort expression's type 存在 存在 存在 存在 存在 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
percentile_disc ( fraction double precision ) WITHIN GROUP ( ORDER BY anyelement ) → anyelement 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在
percentile_disc ( fractions double precision[] ) WITHIN GROUP ( ORDER BY anyelement ) → anyarray 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
AGGREGATE FUNCTIONS 聚合函数 56 个
any_value 1 any_value ( anyelement ) → same as input type
从非空输入值中返回任意一个值。 现存
array_agg基线 2 array_agg ( anynonarray ORDER BY input_sort_columns ) → anyarray 172 次
将所有输入值,包括空值,收集到一个数组中。 现存
avg基线 7 avg ( smallint ) → numeric
计算所有非空输入值的平均值(算术平均值)。 现存
bit_and基线 4 bit_and ( smallint ) → smallint
计算所有非空输入值的逐位AND。 现存
bit_or基线 4 bit_or ( smallint ) → smallint
计算所有非空输入值的逐位OR。 现存
bit_xor 4 bit_xor ( smallint ) → smallint
计算所有非空输入值的按位异或。 现存
bool_and基线 1 bool_and ( boolean ) → boolean
如果全部非空输入值都为真则返回真,否则返回假。 现存
bool_or基线 1 bool_or ( boolean ) → boolean
如果任何非空输入值为真则返回真,否则返回假。 现存
corr基线 1 corr ( Y double precision, X double precision ) → double precision
计算相关系数。 现存
count基线 2 count ( * ) → bigint
计算输入行的数量。 现存
covar_pop基线 1 covar_pop ( Y double precision, X double precision ) → double precision
计算总体协方差。 现存
covar_samp基线 1 covar_samp ( Y double precision, X double precision ) → double precision
计算样本协方差。 现存
cume_dist基线 2 cume_dist ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → double precision 9.41 次
计算累积分布,也就是(位于假设行之前或与假设行同等的行数)/(总行数)。 现存
dense_rank基线 2 dense_rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → bigint 9.41 次
计算假设行的排名,没有间隔;这个功能有效地计数同等行组。 现存
every基线 1 every ( boolean ) → boolean
这是对应bool_and的SQL标准的等效物。 现存
GROUPING 1 GROUPING ( group_by_expression(s) ) → integer
返回一个位掩码以指示哪个GROUP BY表达式没有包含在当前分组集中。 现存
json_agg 1 json_agg ( anyelement ORDER BY input_sort_columns ) → json 171 次
收集所有输入值,包括空值,到一个JSON数组。 现存
json_agg_strict 1 json_agg_strict ( anyelement ) → json
收集所有输入值,跳过空值,到一个JSON数组。 现存
json_arrayagg 1 json_arrayagg ( [ value_expression ] [ ORDER BY sort_expression ] [ { NULL | ABSENT } ON NULL ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ])
行为与json_array相同,只是它作为一个聚合函数,因此只接受一个 value_expression参数。 现存
json_object_agg 1 json_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → json 171 次
将所有键/值对收集到一个JSON对象中。 现存
json_object_agg_strict 1 json_object_agg_strict ( key "any", value "any" ) → json
将所有键/值对收集到一个JSON对象中。 现存
json_object_agg_unique 1 json_object_agg_unique ( key "any", value "any" ) → json
将所有键/值对收集到一个JSON对象中。 现存
json_object_agg_unique_strict 1 json_object_agg_unique_strict ( key "any", value "any" ) → json
将所有键/值对收集到一个JSON对象中。 现存
json_objectagg 1 json_objectagg ( [ { key_expression { VALUE | ':' } value_expression } ] [ { NULL | ABSENT } ON NULL ] [ { WITH | WITHOUT } UNIQUE [ KEYS ] ] [ RETURNING data_type [ FORMAT JSON [ ENCODING UTF8 ] ] ])
行为与json_object相同,只是它作为一个聚合函数,因此只接受一个 key_expression参数和一个 value_expression参数。 现存
jsonb_agg 1 jsonb_agg ( anyelement ORDER BY input_sort_columns ) → jsonb 171 次
收集所有输入值,包括空值,到一个JSON数组。 现存
jsonb_agg_strict 1 jsonb_agg_strict ( anyelement ) → jsonb
收集所有输入值,跳过空值,到一个JSON数组。 现存
jsonb_object_agg 1 jsonb_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → jsonb 171 次
将所有键/值对收集到一个JSON对象中。 现存
jsonb_object_agg_strict 1 jsonb_object_agg_strict ( key "any", value "any" ) → jsonb
将所有键/值对收集到一个JSON对象中。 现存
jsonb_object_agg_unique 1 jsonb_object_agg_unique ( key "any", value "any" ) → jsonb
将所有键/值对收集到一个JSON对象中。 现存
jsonb_object_agg_unique_strict 1 jsonb_object_agg_unique_strict ( key "any", value "any" ) → jsonb
将所有键/值对收集到一个JSON对象中。 现存
max基线 1 max ( see text ) → same as input type
计算非空输入值的最大值。 现存
min基线 1 min ( see text ) → same as input type
计算非空输入值的最小值。 现存
mode 1 mode () WITHIN GROUP ( ORDER BY anyelement ) → anyelement
计算mode,即聚合参数最频繁的值(如果有多个相同频繁的值,第一个可以任意选择)。 现存
percent_rank基线 2 percent_rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → double precision 9.41 次
计算假设行的相关排行,也就是(rank - 1) / (total rows - 1)。 现存
percentile_cont 4 percentile_cont ( fraction double precision ) WITHIN GROUP ( ORDER BY double precision ) → double precision
计算连续百分位点,该值对应于聚合参数值有序集合中的指定fraction。 现存
percentile_disc 2 percentile_disc ( fraction double precision ) WITHIN GROUP ( ORDER BY anyelement ) → anyelement
计算离散百分位数,即聚合参数值的有序集合中的第一个值,该值在排序中的位置等于或超过指定的fraction。 现存
range_agg 2 range_agg ( value anyrange ) → anymultirange 151 次
计算非空输入值的并集。 现存
range_intersect_agg 2 range_intersect_agg ( value anyrange ) → anyrange
计算非空输入值的交集。 现存
rank基线 2 rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → bigint 9.41 次
计算假设行的排名,包括间隔,就是说在它的同等行组中第一行的行号。 现存
regr_avgx基线 1 regr_avgx ( Y double precision, X double precision ) → double precision
计算自变量的平均值,sum(X)/N. 现存
regr_avgy基线 1 regr_avgy ( Y double precision, X double precision ) → double precision
计算因变量的平均值,sum(Y)/N. 现存
regr_count基线 1 regr_count ( Y double precision, X double precision ) → bigint
计算两个输入都非空的行数。 现存
regr_intercept基线 1 regr_intercept ( Y double precision, X double precision ) → double precision
计算由(X,Y)对决定的最小二乘拟合的线性方程的Y-截距。 现存
regr_r2基线 1 regr_r2 ( Y double precision, X double precision ) → double precision
计算相关系数的平方。 现存
regr_slope基线 1 regr_slope ( Y double precision, X double precision ) → double precision
计算由(X, Y)对决定的最小二乘拟合的线性方程的斜率。 现存
regr_sxx基线 1 regr_sxx ( Y double precision, X double precision ) → double precision
计算自变量的“平方和” sum(X^2) - sum(X)^2/N. 现存
regr_sxy基线 1 regr_sxy ( Y double precision, X double precision ) → double precision
计算独立变量乘以因变量的“sum of products”, sum(X*Y) - sum(X) * sum(Y)/N. 现存
regr_syy基线 1 regr_syy ( Y double precision, X double precision ) → double precision
计算因变量的“平方和”, sum(Y^2) - sum(Y)^2/N. 现存
stddev基线 1 stddev ( numeric_type ) → double precision for real or double precision, otherwise numeric
这是stddev_samp的一个历史别称。 现存
stddev_pop基线 1 stddev_pop ( numeric_type ) → double precision for real or double precision, otherwise numeric
计算输入值的总体标准差。 现存
stddev_samp基线 1 stddev_samp ( numeric_type ) → double precision for real or double precision, otherwise numeric
计算输入值的样本标准差。 现存
string_agg基线 2 string_agg ( value text, delimiter text ) → text 172 次
将非 null 输入值连接成一个字符串。 现存
sum基线 8 sum ( smallint ) → bigint
计算非空输入值的总和。 现存
var_pop基线 1 var_pop ( numeric_type ) → double precision for real or double precision, otherwise numeric
计算输入值的总体方差(总体标准差的平方)。 现存
var_samp基线 1 var_samp ( numeric_type ) → double precision for real or double precision, otherwise numeric
计算输入值的样本方差(样本标准差的平方)。 现存
variance基线 1 variance ( numeric_type ) → double precision for real or double precision, otherwise numeric
这是 var_samp 的一个历史别称。 现存