繁体   English   中英

Postgres中数组聚合的算术运算

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM