2016-10-14 6 views
0

私は7kレコードのPostgreSQLテーブルを持っています。各レコードは3つの固有IDと3つのフィールドを持っています。子供用品、ショール、病院。すべての整数フィールドがあります。私は新しい列を追加し、各列のレセプター(学校、児童病院、病院)の合計量を計算したいと考えています。私は、これは列を追加し、選択して挿入を行うと、かなりstraighforwardあるべきと思ったけど、私はまた、インサートselect文ではidでグループを試してみました私はSQLを列に追加する

alter table site add total integer; 

insert into site(total) select sum(schools+childcares+hospitals) as s from site; 

を望む結果を得ていないのです

答えて

1

あなたがUpdateを探していません

Update site 
set total = COALESCE(schools,0)+COALESCE(childcares,0)+COALESCE(hospitals,0) 

追加COALESCEInsertNULL値を処理します。

例:

1 + 2 + NULL = NULLので、私はCOALESCEを使用している0NULLを交換します。

今度は1 + 2 + 0(NULL) = 3

+0

合体は何ですか? – ziggy

+0

@ziggy - 'Coalesce'はリストから最初の' Not Null'値を返します。 'NULL'値を' zero'に置き換えます。 –

+0

ああ、うまく働いた素晴らしい! – ziggy

関連する問題