【问题标题】:Need sql query for running totals [duplicate]需要用于运行总计的sql查询[重复]
【发布时间】:2018-08-07 01:54:46
【问题描述】:

我有一个成员记录任务的应用程序:

task_id|task_date|task_name|task_duration

在给定的一天 (task_date) 可能有超过 1 个任务以及这些任务所花费的总时间。例如:

表:2

task_date  | task_count | task_duration
2018-02-24 |    2       | 240
2018-02-25 |    1       | 100
2018-02-26 |    3       | 180
2018-02-27 |    2       | 60

我想用累积数字绘制一个图表,以便获得这样的累积运行总计:

期望的输出:

task_date  | task_count | task_duration
2018-02-24 |     2      | 240
2018-02-25 |     3      | 340
2018-02-26 |     6      | 520
2018-02-27 |     8      | 580

这样我就可以看到正在记录的任务的趋势以及它们花费的总时间。

请关注表:2作为要处理的数据。

【问题讨论】:

  • @UdayrajDeshmukh 这个问题是关于mysql的,你发布的链接是关于sql-server的。
  • @McNets 但答案正是 OP 在这里想要的
  • @UdayrajDeshmukh 但它是另一个 RDBMS,MySql 的工作方式与 SQL-Server 的累积总和完全不同。
  • @McNets 在 UdayrajDeshmukh 发布的链接中接受的答案 stackoverflow.com/a/2120639/2548147 是跨数据库(如果您删除 SQL-servers @ table 标志)并且也应该在 MySQL 中工作

标签: mysql


【解决方案1】:

您可以为此作业使用变量。

select task_date, task_count, cum_sum
from (select task_date, task_count, 
             @cum := @cum + task_duration, @cum as cum_sum
      from   tbl, (select @cum := 0) c) r
任务日期 |任务计数 | cum_sum :--------- | ---------: | :------ 2018-02-24 | 2 | 240 2018-02-25 | 1 | 340 2018-02-26 | 3 | 520 2018-02-27 | 2 | 580

dbfiddle here

【讨论】:

    猜你喜欢
    • 2015-12-21
    • 2019-03-13
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    相关资源
    最近更新 更多