gpt4 book ai didi

mysql - 如何在 mysql 中将值逐行求和?

转载 作者:行者123 更新时间:2023-11-29 02:39:42 24 4
gpt4 key购买 nike

假设我在 mysql 中有这样的数据:

date | value
2010 | 1
2011 | 4
2012 | 2
2013 | 3

我想要这样的结果:

date | value
2010 | 1
2011 | 5
2012 | 7
2013 | 10

我认为这很简单。我正在尝试这个:

select tabelA.date, sum(value)
from tabelA
inner join (select date from tabelA group by date) b on tabelA.date > b.date
group by tabelA.date

我觉得我遗漏了一些明显的东西。想要做这件事似乎很简单。

有什么想法吗?

最佳答案

MySQL 8+ 中最好的方法是窗口函数:

select a.date,
sum(a.value) over (order by a.date)
from tabelA a
order by a.date;

在旧版本中,变量可能是最好的方法,但必须谨慎使用:

select date, (@csum := @csum + value) as running_sum
from (select a.date, a.value as value
from tableA a
order by a.date
) a cross join
(select @csum := 0) params;

特别是,您希望子查询中的 order by 确保以正确的顺序处理数据。

关于mysql - 如何在 mysql 中将值逐行求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55277372/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com