从当前行和上一行计算 2 列
Posted
技术标签:
【中文标题】从当前行和上一行计算 2 列【英文标题】:Compute 2 Columns from current row and from the row above 【发布时间】:2020-06-30 09:01:04 【问题描述】:我有一张像这样的表
我的目标是看起来像这样
基本上,它所做的就是根据期初余额的库存和库存一直向下求和,但我无法实现。如何显示这个?
我希望我的表格能在不影响期初余额行的情况下显示余额
【问题讨论】:
1) 无排序 - 无结果。请记住 - 输出中的物理排序不适用。 2) 当您定义行排序时 - 使用 LAG() 函数。 我有一个主 ID AI,我只是没有在我的示例中添加它 如果是,请使用LAG()
。
【参考方案1】:
您可以使用窗口函数(如果您运行的是 mysql 8.0)。假设列 id
定义了行的顺序,那就是:
select
t.*,
sum(coalesce(balance, 0) + coalesce(stock_in, 0) - coalesce(stock_out, 0))
over(partition by branch_id order by id) new_balance
from mytable t
【讨论】:
如果我有 2 个分支 ID,它会影响我的报告吗? @PaulEdwardPagente:总和由branch_id
划分,因此无论您有多少branch_id
s,这都会起作用。
回答这个问题以上是关于从当前行和上一行计算 2 列的主要内容,如果未能解决你的问题,请参考以下文章
当前行和上一行之间的秒数差异,并使用 google bigquery 将值存储在单独的列中