可能重复:
计算部分和的MySQL查询
好的,问题根本不清楚,因此示例将是:我有一个像这样的表:
id amount
1 1000
2 2500
3 5000
Run Code Online (Sandbox Code Playgroud)
我需要从中选择以下数据:
id oamount total
1 1000 1000
2 2500 3500
3 5000 8500
Run Code Online (Sandbox Code Playgroud)
我试过了,但不正确:
select *,sum(oamount) from `table`
group by id;
Run Code Online (Sandbox Code Playgroud)
我不知道
我已经回答了一个非常相似的问题,他们试图获取每天开始/结束的现金流量余额... 在这里找到
您的情况将非常相似...以所需的最终顺序对数据进行预查询(即:起始ID将是结果集的第一个),然后将所需的内容与MySQL变量一起应用
select
PreAgg.ID,
PreAgg.Amount,
@PrevBal := @PrevBal + PreAgg.Amount as Total
from
( select
YT.id,
YT.amount
from
YourTable YT
order by
YT.id ) as PreAgg,
( select @PrevBal := 0.00 ) as SqlVars
Run Code Online (Sandbox Code Playgroud)
实际上,我已经将预聚合保留为查询...以防万一您想实际进行一些聚合,例如基于日常交易,或应用其他WHERE子句。这样可以灵活地确保在开始@PrevBal累积之前已准备好最终输出订单。
| 归档时间: |
|
| 查看次数: |
4891 次 |
| 最近记录: |