我有一个灾难表,其中包含1,634条记录,每个位置都有一个"id“,”PostgreSQL (N)_a“列表示每个灾难事件的受影响人数,"disaster2_an”列表示第二个灾难事件的归一化受影响人数。
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_an = (disaster2_a - AVG(disaster2_a, disaster1_a))/
(MAX(disaster2_a, disaster1_a) - MIN(disaster2_a, disaster1_a))发布于 2017-06-01 02:39:07
我找到了我的问题的答案。我刚刚将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));https://stackoverflow.com/questions/44291488
复制相似问题