【发布时间】:2020-09-16 12:46:32
【问题描述】:
我有这个查询,我计算了累积总和。现在,我需要计算同一个变量的反向累积和
SELECT t1.date, t1.ant, t1.hab,
(@csum:= @csum + t1.hab) as cumulative_hab
from(
SELECT date,
ant,
sum(num_habit) as hab
from xxxxxxxxxx
WHERE date BETWEEN CURDATE() - INTERVAL 5 DAY AND CURDATE()
group by ant) AS t1
,(select @csum := 0) vars
order by t1.ant
我的桌子是这样的
date ant hab cumulative_hab
24-05-2020 0 382,000 382,000
24-05-2020 1 28,000 410,000
24-05-2020 2 26,000 436,000
24-05-2020 3 11,000 447,000
24-05-2020 4 29,000 476,000
24-05-2020 6 6,000 482,000
24-05-2020 7 12,000 494,000
28-05-2020 8 50,000 544,000
24-05-2020 12 5,000 549,000
24-05-2020 13 6,000 555,000
我想要另一列有反向运行总和(反向累积总和),第一个值计算为 555 - 382
date ant hab cumulative_hab reverse_cum_hab
24-05-2020 0 382,000 382,000 555,000
24-05-2020 1 28,000 410,000 173,000,
24-05-2020 2 26,000 436,000 145,000
24-05-2020 3 11,000 447,000 119,000
24-05-2020 4 29,000 476,000 108,000
24-05-2020 6 6,000 482,000 79,000
24-05-2020 7 12,000 494,000 73,000
28-05-2020 8 50,000 544,000 61,000
24-05-2020 12 5,000 549,000 11,000
24-05-2020 13 6,000 555,000 6,000
【问题讨论】:
-
你运行的是哪个版本的 MySQL?
-
我使用的是 MYSQL 5.6.4
-
这与您之前接受答案的问题有何不同?
-
有点不同,因为我的代码发生了变化(更多日期和 sum(x)),我尝试使用您的回复,但我无法使用此代码。
标签: mysql sql group-by sum window-functions