[英]Continous update variable value based on previous value
我正在尝试根据先前更新的值来更新销售列的值。 例如 -
表A
Day growth sales
1 1.1 1
2 1.2 NULL
3 1.3 NULL
我想根据增长来更新销售价值。 因此,第2天将是第1天的销售额*增长。 而第3天将是第2天更新的销售额*增长。 在netezza中不循环就可能吗? 感谢大家。
您可以使用累积总和和日志来获得累积积:
select t.*,
(case when day = 1 then sales
else (exp(sum(ln(growth)) over (order by day) / growth) *
max(case when day = 1 then sales end) over ()
end) as new_sales
from t;
DECLARE @_i NUMERIC(18,2) = (SELECT Sales FROM A WHERE Day = '1')
UPDATE A
SET @_i = Sales = @_i * CASE WHEN _Day = '1' THEN (SELECT Sales FROM A WHERE Day = '1')
ELSE GROWTH END
SELECT * FROM A
这是我的答案,试试这个
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.