FUNCTION聚合函数
every
这是标准 SQL 中与 bool_and 等价的函数。
This is the SQL standard's equivalent to bool_and.
聚合函数 引入 8.0 现存至 20 devel 1 条签名 0 次签名变更
- 分组
- 聚合函数
- 签名数
- 1 条
- 引入版本
- 8.0
- 状态
- 现存
- 签名变更
- 未变过
- 本版来源
- 英文原文
版本轨迹
相对 PostgreSQL 17 无变化。
说明
bool_and 等价的函数。every ( boolean ) → boolean这是标准 SQL 中与
bool_and 等价的函数。签名
PostgreSQL 18.7 里 every 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。
-
every(boolean) →boolean这是标准 SQL 中与bool_and等价的函数。
演化历史
相邻两个大版本之间的差异,新的在前。版本号链到该版的签名。
-
PostgreSQL 13 ← 12 手册重排
这一跳手册重排了函数表的写法,签名文本整体改写,只记函数的增删,不逐条比较签名。
-
PostgreSQL 8.0 ← 7.4 新增此函数
PostgreSQL 8.0 起可用
签名矩阵
每条签名在给出了签名的 23 个版本里的存在情况;方格指向该版的签名。只在正文里提到此函数、没有给出签名的版本不列进来,上面的版本轨迹里仍然有它们。签名文本在 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 |
8.42 次 | |
| 计算所有非空输入值的平均值(算术平均值)。 | 现存 | |||
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 |
7.32 次 | |
| 计算输入行的数量。 | 现存 | |||
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 次 | |
| 计算累积分布,也就是(位于假想行之前或与假想行同等的行数)/(总行数)。取值范围为 1/N 到 1。 | 现存 | |||
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 表达式未包含在当前分组集中。分配比特位时,最右侧参数对应最低有效位;如果相应表达式包含在生成当前结果行的分组集的分组条件中,该位为 0,否则为 1。 | 现存 | |||
json_agg |
1 | json_agg ( anyelement ORDER BY input_sort_columns ) → json |
171 次 | |
| 将所有输入值(包括空值)收集到一个 JSON 数组中。根据 to_json 或 to_jsonb 将值转换为 JSON。 | 现存 | |||
json_agg_strict |
1 | json_agg_strict ( anyelement ) → json |
— | |
| 将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 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 参数。如果指定了 ABSENT ON NULL,则会省略所有 NULL 值。如果指定了 ORDER BY,元素将按该顺序出现在数组中,而不是按输入顺序。 | 现存 | |||
json_object_agg |
1 | json_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → json |
171 次 | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能(为空)。如果一个键出现多次,json 结果会保留每个键值对,而 jsonb 结果只保留该键的最后一个值。 | 现存 | |||
json_object_agg_strict |
1 | json_object_agg_strict ( key "any", value "any" ) → json |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。 | 现存 | |||
json_object_agg_unique |
1 | json_object_agg_unique ( key "any", value "any" ) → json |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。 | 现存 | |||
json_object_agg_unique_strict |
1 | json_object_agg_unique_strict ( key "any", value "any" ) → json |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。 | 现存 | |||
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 数组中。根据 to_json 或 to_jsonb 将值转换为 JSON。 | 现存 | |||
jsonb_agg_strict |
1 | jsonb_agg_strict ( anyelement ) → jsonb |
— | |
| 将所有非空输入值收集到一个 JSON 数组中,跳过空值。根据 to_json 或 to_jsonb 将值转换为 JSON。 | 现存 | |||
jsonb_object_agg |
1 | jsonb_object_agg ( key "any", value "any" ORDER BY input_sort_columns ) → jsonb |
171 次 | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能(为空)。如果一个键出现多次,json 结果会保留每个键值对,而 jsonb 结果只保留该键的最后一个值。 | 现存 | |||
jsonb_object_agg_strict |
1 | jsonb_object_agg_strict ( key "any", value "any" ) → jsonb |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。移除所有值为空的键值对后,重复键的处理方式与 json_object_agg 和 jsonb_object_agg 相同。 | 现存 | |||
jsonb_object_agg_unique |
1 | jsonb_object_agg_unique ( key "any", value "any" ) → jsonb |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。值可以为空,但键不能为空。如果存在重复键,则会抛出错误。 | 现存 | |||
jsonb_object_agg_unique_strict |
1 | jsonb_object_agg_unique_strict ( key "any", value "any" ) → jsonb |
— | |
| 将所有键/值对收集到一个 JSON 对象中。键参数强制转换为文本;值参数按照 to_json 或 to_jsonb 进行转换。key 不能为空。如果 value 为空,则跳过该键值对。如果存在重复键(包括值为空的键值对),则会抛出错误。 | 现存 | |||
max基线 |
1 | max ( see text ) → same as input type |
7.32 次 | |
| 计算非空输入值的最大值。适用于任何数字、字符串、日期/时间或枚举类型,以及 bytea、inet、interval、money、oid、oid8、pg_lsn、tid、uuid、xid8,以及包含可排序数据类型的数组和复合类型。 | 现存 | |||
min基线 |
1 | min ( see text ) → same as input type |
7.32 次 | |
| 计算非空输入值的最小值。适用于任何数字、字符串、日期/时间或枚举类型,以及 bytea、inet、interval、money、oid、oid8、pg_lsn、tid、uuid、xid8,以及包含可排序数据类型的数组和复合类型。 | 现存 | |||
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)。取值范围为 0 到 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 |
7.32 次 | |
| 这是 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 输入值连接成一个字符串。在第一个值之后,每个值前面都会放置相应的 delimiter(如果它不为 NULL)。 | 现存 | |||
sum基线 |
8 | sum ( smallint ) → bigint |
9.04 次 | |
| 计算非空输入值的总和。 | 现存 | |||
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 |
7.32 次 | |
| 这是 var_samp 的一个历史别名。 | 现存 | |||