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