[英]Arithmetic operation on array aggregation in postgres
我在postgres中有2个关于array_agg的问题
1)我有一列是array_agg类型。 我需要将array_agg的每个元素除以一个常量值。 可能吗。 我检查了http://www.postgresql.org/docs/9.1/static/functions-array.html ,但是找不到对array_agg上任何算术运算的引用。
编辑:所需操作的示例。
select array_agg(value)/2 from some_table
在这里,我从some_table
表创建一个列value
的数组,我必须将每列除以4
2)是否可以在array_agg中使用合并。 在我的情况下,可能存在列的array_agg可能导致NULL数组的情况。 我们可以对array_agg使用合并吗?
例:
select coalsece(array_agg(value1), 0)
划分可能比您想象的要简单:
SELECT array_agg(value/2)
FROM ...
但是, value/2
作用完全取决于数据类型。 如果value是integer
,则小数位将被截断。 要保留小数位数,请改用value/2.0
。 小数位强制使用numeric
值进行计算。
COALESCE
在数组外不会有任何区别。 要么没有行,要么根本没有结果(“没有行”),或者如果没有,则得到一个数组,可能带有NULL
元素。 但是数组本身的值永远不会为NULL
。
用0
替换单个NULL
值:
SELECT array_agg(coalesce(value/2.0, 0))
FROM ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.