pst*_*elk 4 sql arrays postgresql types aggregate-functions
我在postgres中有关于array_agg的2个问题
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
Run Code Online (Sandbox Code Playgroud)
在这里,我value从表中创建一个列的数组,some_table我必须将每个列分开4
2)是否可以在array_agg中使用coalesce.在我的场景中,可能存在这样的情况:列的array_agg可能导致NULL数组.我们可以为array_agg使用coalesce吗?
例:
select coalsece(array_agg(value1), 0)
Run Code Online (Sandbox Code Playgroud)
划分可能比你想象的更简单:
SELECT array_agg(value/2)
FROM ...
Run Code Online (Sandbox Code Playgroud)
但是,究竟什么value/2依赖于数据类型.如果value为a integer,则截断小数位.要保留小数位,请value/2.0改用.小数位强制计算用numeric值完成.
COALESCE在阵列之外不会有任何区别.要么没有行,那么你根本就没有结果('没有行'),或者如果有,你得到一个数组,可能有NULL元素.但是数组本身的价值永远不会NULL.
用以下内容替换单个NULL值0:
SELECT array_agg(coalesce(value/2.0, 0))
FROM ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
800 次 |
| 最近记录: |