当前位置:   article > 正文

pgsql聚集函数_pgsql count(expression)

pgsql count(expression)

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 用全表扫描执行。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号