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 值 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)