gpt4 book ai didi

MySQL计算带重置条件的累计和

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

有没有办法在 mySQL 中捕获具有重置条件的累积和?这个用例是一个简单的收银台

id    transactionType      value  CurrentBalance
1 purchase 10 10
2 sale -10 0
3 RESET 20 20
4 purchase 10 30
5 sale -10 20
6 sale 10 30
7 sale -20 10

这里的答案是一个很好的起点,但我不知道如何扩展它: Create a Cumulative Sum Column in MySQL

SELECT t.id,
t.count,
@running_total := @running_total + t.value AS CurrentBalance
FROM TABLE t
JOIN (SELECT @running_total := 0) r
ORDER BY t.id

注意:基本上,这个想法是在每次重置时重置累积总和。理想情况下,我试图有一个更新/插入触发器,它将更新整个 CurrentBalance 列,同时考虑到 RESET。这是一个小表,所以我不介意更新整个表以换取一些简单的东西。

最佳答案

所有这一切都需要一些简单的条件逻辑:

SELECT t.id, t.count,
@running_total := if(transactionType = 'RESET', t.value,
@running_total + t.value
) as CurrentBalance
FROM TABLE t JOIN
(SELECT @running_total := 0) params
ORDER BY t.id;

关于MySQL计算带重置条件的累计和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31885375/

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