Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL-获取多个条目的累积和_Mysql_Sql_Cumulative Sum - Fatal编程技术网

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

MySQL-获取多个条目的累积和,mysql,sql,cumulative-sum,Mysql,Sql,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

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

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
通过此查询,我可以获取特定日期的累计总和。我可以运行一个查询来获取cum吗。每个日期的金额

select EntryDate, sum(value) valueSum from Mytable group by Date
另外,如果我只想得到那些已经添加/删除值的日期的总和,我如何才能得到呢

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

谢谢。

如果您省略WHERE子句或仅将其设置为WHERE true等,那么您已经提供的这个查询将为您提供每个日期的总和

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

Date         valueSum
2017-05-08   20
2017-05-10   20
2017-05-11   10
不幸的是,在没有更多数据信息的情况下,我无法计算出如何只得到经过修改的日期的总和。是否有另一个时间戳列可以检查以查看最近的内容?也许删除只是翻转一个软删除布尔值,可以检查它以查看删除了什么?

您可以使用

select t.dt, (select sum(value) 
                from Mytable t1 where t1.dt <= t.dt ) 
    from Mytable t
尽量避免使用列名称date,因为这是一个保留字,可能会导致问题。
此外,这仅打印出输入数据的行,您必须以编程方式填补空白。

您选择的日期,Mytable group by Date的sumvalue valueSum似乎已经满足目标1。目标2需要更多关于如何表示已添加/删除的值的详细信息。否我的查询仅返回每个日期的值的总和,而不是累积值。我希望得到每个日期的累计金额。然后日期是一个日期时间而不是一个日期,您需要将其转换为一个日期。选择dateDate,按dateDate从Mytable组中选择sumvalue valueSum我不确定您的意思。我想用Date作为列名会让我有些困惑。我已经把它更新到登录日期。看看THES TRAD:我的查询结果是2017—05-01 - 10,2017—05-03 - 10,2017—05-05 - 20。让我们只考虑为简单而添加的值,假设没有删除值。