MySQL - 获取多个条目的累积总和

时间:2017-05-09 19:24:27

标签: mysql sql running-total cumulative-sum

我有一张看起来像这样的桌子。对于某些日期,会为标签添加(或删除)特定值。

EntryDate   Label Value
2017-05-01  A     10   
2017-05-03  B     10   
2017-05-05  A     10   
2017-05-05  B     10  

我需要输出一个输出,显示每天的累计值,无论标签如何。结果如下:

EntryDate   ValueSum
2017-05-01  10   
2017-05-02  10
2017-05-03  20
2017-05-04  20
2017-05-05  40

此查询可让我获取特定日期的累计金额。我可以运行单个查询来获得暨。每个日期的总和?

select EntryDate, sum(value) valueSum from Mytable group by Date

另外,如果我只想获得已添加/删除值的那些日期的总和,我该怎么办呢?

EntryDate   ValueSum
2017-05-01  10
2017-05-03  20
2017-05-05  40

感谢。

2 个答案:

答案 0 :(得分:0)

如果您不使用WHERE子句或只是将WHERE为真等,那么您已经提供的这个单一查询会为您提供每个日期的总和。

SELECT `Date`, sum(Value) valueSum FROM `Mytable` GROUP BY `Date`

Date         valueSum
2017-05-08   20
2017-05-10   20
2017-05-11   10

不幸的是,我无法弄清楚如何在没有关于数据的更多信息的情况下获得修改日期的总和。是否有另一个时间戳列可以检查以查看最近的内容?也许删除只是翻转一个软删除布尔值,可以检查以查看删除的内容?

答案 1 :(得分:0)

您可以使用

对其进行总结
select t.dt, (select sum(value) 
                from Mytable t1 where t1.dt <= t.dt ) 
    from Mytable t

尽量避免让列名为date,因为这是一个保留字,可能会导致问题。 此外,这只打印出输入数据的行,你必须以编程方式填补空白。