在XLS中,我有两列A和B。
A,B
1,1
2,3
2,5
1,6
5,11
2,13
列有值,B列用公式计算,(A +(前一行B值))
我如何在MYSQL上进行此计算?
我试图加入同一张桌子两次,然后我就可以获得B之前的一行。
我可以总结一下,但我怎样才能用这个公式加以总结?
XLS公式如下所示:
H20 = H19+G20
这是我根据建议创建的SQL。
SELECT
date, time, sum, @b := sum+@b as 'AccSum', count
FROM
(SELECT
t.date, t.time, t.sum, t.count
FROM TMP_DATA_CALC t
ORDER BY t.epoch) as tb
CROSS JOIN
(SELECT @b := 0) AS var
;
答案 0 :(得分:2)
SELECT A, @b := A+@b AS B
FROM (SELECT A
FROM YourTable
ORDER BY id) AS t
CROSS JOIN
(SELECT @b := 0) AS var
用户变量@b
保存前一行的B
值,允许您将当前行的A
添加到其中。
答案 1 :(得分:0)
http://sqlfiddle.com/#!2/74488/2/1显示了如何选择数据。
SET @runtot:=0;
Select a,b, @runtot:=@runtot+a from b
然而,我无法弄清楚存在潜在的问题。由于您没有已定义的订单,因此SQL可以以任何方式执行此排序,因此您可能无法获得所需的结果。如果没有定义的订单,您的结果可能无法预测。
runtot =跑步总数。
答案 2 :(得分:0)
在MySQL中,我们没有像Oracle那样的分区功能。您可以使用光标来满足您的要求。或者我们可以编写任何将rownumber作为输入的函数,然后添加这两个值然后返回查询。
从xsl中选择b限制rownum-1,1 +从xsl limit rownum中选择一个,1