↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

百科 / 函数百科 / 聚合函数

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 18.7 手册 · 9.21 聚合函数 官方文档

版本轨迹

相对 PostgreSQL 17 无变化。

说明

这是标准 SQL 中与 bool_and 等价的函数。
every ( boolean ) → boolean
这是标准 SQL 中与 bool_and 等价的函数。

签名

PostgreSQL 18.7 里 every 的 1 条签名,按上游手册顺序排列。参数名用斜体,类型用弱化色, 之后是返回类型。中文说明来自同版本手册与审阅译文,悬停可查看每条说明的来源。

  1. every ( boolean ) → boolean

    这是标准 SQL 中与 bool_and 等价的函数。

演化历史

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

  1. PostgreSQL 13 ← 12 手册重排

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

  2. PostgreSQL 8.0 ← 7.4 新增此函数

    PostgreSQL 8.0 起可用

签名矩阵

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

存在 不存在

签名 8.08.18.28.38.49.09.19.29.39.49.59.61011121314151617181920
every ( expression ) → bool 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在
every ( boolean ) → boolean 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在

同组函数

函数 签名 主签名 版本变动 最近变更
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 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 的一个历史别名。 现存