FUNCTION聚合函数
jsonb_object_agg_unique
将所有键/值对收集到一个JSON对象中。
Collects all the key/value pairs into a JSON object.
聚合函数 引入 16 现存至 20 devel 1 条签名 0 次签名变更
- 分组
- 聚合函数
- 签名数
- 1 条
- 引入版本
- 16
- 状态
- 现存
- 签名变更
- 未变过
- 本版来源
- 本站译文
版本轨迹
相对 PostgreSQL 17 无变化。
签名
PostgreSQL 18 里 jsonb_object_agg_unique 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。说明取自本站手册译文:标「沿用」的借用了另一版的译文,标「EN」的本站暂无译文、按英文原文显示。
-
jsonb_object_agg_unique(key"any",value"any") →jsonb将所有键/值对收集到一个JSON对象中。键参数强制转换为文本;值参数按照to_json或to_jsonb进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。
-
PostgreSQL 16 ← 15 新增此函数
PostgreSQL 16 起可用
签名矩阵
每条签名在给出了签名的 5 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 PostgreSQL 13 前后写法不同,跨越那一跳的同一条签名会显示成两行。
存在 不存在
同组函数
| 函数 | 签名 | 主签名 | 版本变动 | 最近变更 |
|---|---|---|---|---|
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 |
— | |
| 计算所有非空输入值的按位与。 | 现存 | |||
bit_or基线 |
4 | bit_or ( smallint ) → smallint |
— | |
| 计算所有非空输入值的按位或。 | 现存 | |||
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 |
— | |
| 这是标准 SQL 中与bool_and等价的函数。 | 现存 | |||
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 |
— | |
| 计算众数,即聚合参数中出现次数最多的值(若多个值的出现次数相同且最多,则任意选择其中第一个)。 | 现存 | |||
percent_rank基线 |
2 | percent_rank ( args ) WITHIN GROUP ( ORDER BY sorted_args ) → double precision |
9.41 次 | |
| 计算假想行的相对排名,即(rank - 1)/(总行数 - 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(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 的一个历史别名。 | 现存 | |||