4

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

ここではvalue、テーブルから列の配列を作成し、some_table各列を次のように除算する必要があります。4

2)array_aggでcolesceを使用することは可能ですか。私のシナリオでは、列のarray_aggがNULL配列になる場合があります。array_aggにcolesceを使用できますか?

例:

select coalsece(array_agg(value1), 0)
4

1 に答える 1

6

分割はおそらくあなたが思っていたよりも簡単です:

SELECT array_agg(value/2)
FROM ...

ただし、何value/2が正確に行われるかはデータ型によって異なります。値が、の場合integer、小数桁は切り捨てられます。小数桁を保持するには、value/2.0代わりにを使用してください。小数桁は、値を使用して計算を強制しnumericます。

COALESCEアレイの外では何の違いもありません。行がない場合は結果がまったく得られない(「行なし」)か、ある場合は、おそらくNULL要素を含む配列を取得します。ただし、配列自体の値は決してではありませんNULL

個々のNULL値を次のように置き換えるには0

SELECT array_agg(coalesce(value/2.0, 0))
FROM ...
于 2013-03-26T05:20:50.307 に答える