2017-05-31 1 views
0

私はPostgreSQLのテーブルに、それぞれの場所に "id"を持つ1,634個のレコードと、災害イベントあたりの被災者数の "disaster(n)_a"列と、第2の災害イベントの被災者の正規化数に対する「disaster2_an」列。 「disaster2_an」を更新するためにPostgreSQL - AVG、MAX、およびMINを使用した正規化

id | disaster1_a | disaster2_a | disaster2_an 
-------------------------------------------------- 
1234567|  27  |  30  |  0 
5687428|  58  |  87  |  0 
5874658|  88  |  458  |  0 
....... 

、私は両方の災害イベントに被災者のデータを使用して場所ごとに被災者の正規化された数のために計算しなければなりません。列「disaster2_an」を更新するSQL文として次の関数を入力するにはどうすればよいですか?

disaster2_an = (disaster2_a - AVG(disaster2_a, disaster1_a))/ 
(MAX(disaster2_a, disaster1_a) - MIN(disaster2_a, disaster1_a)) 

答えて

1

私の質問に対する回答が見つかりました。私はMAX()とMIN()をそれぞれGREATEST()とLEAST()に置き換え、平均を得るための手作業による方法を実行しました。

UPDATE TABLE tbl1 
    SET disaster2_an = (disaster2_a - ((disaster2_a + disaster1_a)/2))/(GREATEST(disaster2_a, disaster1_a) - LEAST(disaster2_a, disaster1_a)); 
関連する問題