gpt4 book ai didi

Mysql递归减法和乘法

转载 作者:行者123 更新时间:2023-11-29 08:06:04 24 4
gpt4 key购买 nike

无法用语言真正解释我的问题,但通过一个例子我可以清楚地展示它:

我有一个这样的表:

id    num   val
0 3 10
1 5 12
2 7 12
3 11 15

我想遍历所有行,计算“num”的增量,并将该差值乘以“val”值。当我计算所有这些时,我想将这些结果加在一起。

这是我想在 table 上运行的数学方程:

Result = (3-0)*10 + (5-3)*12 + (7-5)*12 + (11-7)*15
138 = Result

谢谢。

最佳答案

您可以使用 mysql 变量,但每个条目仍会获得一条记录。

select
@lastTotal := @lastTotal + ( (yt.num - @lastNum) * yt.val ) thisLineTotal,
@lastNum := yt.num as saveForNextRow,
yt.id
from
yourTable yt,
( select @lastTotal := 0,
@lastNum := 0 ) sqlvars
order by
id

这应该为您提供您想要确认每个记录基础的计算的内容。

现在,要获取一条记录和一列结果,您可以将其包装起来,例如

select
pq.thisLineTotal
from
(above entire query ) as pq
order by
pq.id DESC
limit 1

关于Mysql递归减法和乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22725742/

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