我有两列的表,即cumulative_sum和absolute。 但我只有累积价值。我想计算绝对值。
累积价值
12
19
32
41
预期绝对值
12
7
13
9
我尝试过这样的查询。我只需要在每次查询更新时更新@absvalue。
set @absvalue := 0;
update pdb_tint_result set abs = (cum - @absvalue)
where user_id='P6'
order by date;
你能指导我吗?
我看到计算累计金额here 我试着让它适用于计算Abs值。
答案 0 :(得分:2)
试试这个 -
SET @prev_cum:=0;
UPDATE test_point_sum
SET absolute_value = (cumulative_sum - @prev_cum),
cumulative_sum = @prev_cum:=cumulative_sum
ORDER BY
ID ASC;
选择您的表名和列名。经过测试和验证。看看这是否有帮助
答案 1 :(得分:1)
如果您想通过更改变量自动执行某些操作,我建议您使用触发器。在你的情况下使用触发器
"CREATE TRIGGER update_abs
BEFORE UPDATE ON pdb_tint_result
FOR EACH ROW SET abs = cum - New.absvalue;"
我希望它有所帮助。