PG数据库中的聚集函数
PG中的聚集函数
聚集函数从一个输入值的集合计算出一个单一值。
| 函数 | 参数类型 | 返回类型 | 描述 |
|---|---|---|---|
array_agg(*expression*) |
任何非数组类型 | 参数类型的数组 | 输入值(包括空)被连接到一个数组 |
array_agg(*expression*) |
任意数组类型 | 和参数数据类型相同 | 输入数组被串接到一个更高维度的数组中 (输入必须都具有相同的维度并且不能为空或者 NULL) |
avg(*expression*) |
smallint, int, bigint、real、double precision、numeric或interval |
对于任何整数类型参数是numeric,对于一个浮点参数是double precision,否则和参数数据类型相同 |
所有非空输入值的平均值(算术平均) |
bit_and(*expression*) |
smallint、int、bigint或bit |
与参数数据类型相同 | 所有非空输入值的按位与,如果没有非空值则结果是空值 |
bit_or(*expression*) |
smallint, int, bigint, or bit |
与参数数据类型相同 | 所有非空输入值的按位或,如果没有非空值则结果是空值 |
bool_and(*expression*) |
bool |
bool |
如果所有输入值为真则结果为真,否则为假 |
bool_or(*expression*) |
bool |
bool |
至少一个输入值为真时结果为真,否则为假 |
count(*) |
bigint |
输入的行数 | |
count(*expression*) |
any | bigint |
expression值非空的输入行的数目 |
every(*expression*) |
bool |
bool |
等价于bool_and |
json_agg(*expression*) |
any |
json |
将值,包含空值,聚集成一个 JSON 数组 |
jsonb_agg(*expression*) |
any |
jsonb |
把值,包含空值,聚合成一个 JSON 数组 |
json_object_agg(*name*, *value*) |
(any, any) |
json |
将名字/值对聚集成一个 JSON 对象,值可以为空,但不能是名字。 |
jsonb_object_agg(*name*, *value*) |
(any, any) |
jsonb |
把名字/值对聚合成一个 JSON 对象,值可以为空,但不能是名字。 |
max(*expression*) |
任意数组、数字、串、日期/时间、网络或者枚举类型,或者这些类型的数组 | 与参数数据类型相同 | 所有非空输入值中expression的最大值 |
min(*expression*) |
任意数组、数字、串、日期/时间、网络或者枚举类型,或者这些类型的数组 | 与参数数据类型相同 | 所有非空输入值中expression的最小值 |
string_agg(*expression*, *delimiter*) |
(text, text) 或 (bytea, bytea) |
与参数数据类型相同 | 非空输入值连接成一个串,用定界符分隔 |
sum(*expression*) |
smallint、int、 bigint、real、double precision、numeric、 interval或money |
对smallint或int参数是bigint,对bigint参数是numeric,否则和参数数据类型相同 |
所有非空输入值的expression的和 |
xmlagg(*expression*) |
xml |
xml |
连接 非空XML 值 |

浙公网安备 33010602011771号