pgsql聚集函数

9.15. 聚集函数

聚集函数 从一套输入值里计算一个结果。 Table 9-37 显示了内建聚集函数。 聚集函数的特殊语法在 Section 4.2.7里解释。请参考 Part I 获取附加的介绍性信息。

Table 9-37. 聚集函数

函数参数类型返回类型描述
avg(expression)所有输入值的均值(算术平均)smallintintbigintrealdouble precisionnumeric, 或 interval.对于任何整数类型输入,结果都是 numeric 类型。 对于任何浮点输入,结果都是 double precision 类型。 否则和输入数据类型相同。所有输入值的平均(算术平均)。
bit_and(expression)smallintintbigint, 或者 bit和参数数据类型相同所有非空输入值的按位 AND (与),如果没有,则为空
bit_or(expression)smallintintbigint, 或者 bit和参数数据类型相同所有非空输入值的按位 OR (或),如果没有,则为空
bool_and(expression)boolbool如果所有输入值都是真,则为真,否则为假
bool_or(expression)boolbool如果至少有一个输入值为真,则为着,否则为假
count(*) bigint输入值的个数
count(expression)任意bigint计算那些 expression 非 NULL 的输入的个数。
every(expression)boolbool等效于 bool_and
max(expression)任何数组,数值,字串或者日期/时间类型与参数同类型所有输入值中, expression 的最大值
min(expression)任何数组,数值,字串或者日期/时间类型与参数同类型所有输入值中, expression 的最小值
stddev(expression)smallintintbigintrealdouble precision, 或numeric.浮点数参数时是double precision, 否则 numeric输入值的标准采样偏差(sample standard deviation)
sum(expression)smallintintbigintrealdouble precision,numeric, 或者 interval对 smallint 或 int输入 输出类型为 bigint。对于bigint输入输出类型为 numeric, 浮点数输入的结果是double precision。 否则和输入数据类型相同。所有输入值的 expression 的总和
variance(expression)smallintintegerbigintrealdouble precision, 或者 numeric.浮点数参数是 double precision, 否则是 numeric输出值的采样方差(标准采样偏差的平方)。

请注意除了 count 以外, 这些函数在没有选中行时返回 NULL。 尤其要指出的是对零输入行进行 sum 将返回 NULL, 而不是我们预期的零。 必要时可以用 coalesce 把 NULL 替换成零。

注意: 布尔聚集 bool_and 和 bool_or 对应标准的 SQL 聚集 every 和 any 或者 some。对于 any 和 some, 标准语法里面似乎有些内置的歧义:

SELECT b1 = ANY((SELECT b2 FROM t2 ...)) FROM t1 ...;

这里的 ANY 既可以被认为是引出一个子查询,也可以认为是一个聚集(如果查询表达式返回 1 行电话)。 因此标准的名字无法用于这些聚集。

注意: 习惯了其它 SQL 数据库管理系统的用户可能被用在全表计算的 count 的性能惊住了。 一个类似下面这样的查询:

SELECT count(*) FROM sometable;

将会被 PostgreSQL 用全表扫描执行。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值