【问题标题】:SQL to get the elapsed time for JobsSQL 获取 Jobs 的经过时间
【发布时间】:2012-10-10 16:37:21
【问题描述】:

我有一个包含事务时间的表,1 个批次将触发多个作业。我想为批处理添加每个作业中经过的时间。 事务表的格式如下,

START_TIME          JOB END_TIME
1/7/2012 12:10:24   AA  1/7/2012 12:18:49
1/7/2012 12:10:23   AA  1/7/2012 12:10:23
1/7/2012 12:10:24   AA  1/7/2012 12:10:24
7/7/2012 16:10:33   AA  7/7/2012 16:15:23
7/7/2012 16:10:32   AA  7/7/2012 16:10:32
7/7/2012 16:10:33   AA  7/7/2012 16:10:33
7/7/2012 17:58:21   BB  7/7/2012 19:05:41
7/7/2012 16:40:25   BB  7/7/2012 16:40:25
7/7/2012 17:56:58   BB  7/7/2012 17:56:58
1/7/2012 14:00:11   BB  1/7/2012 14:47:09
1/7/2012 12:40:19   BB  1/7/2012 12:40:19
1/7/2012 13:58:33   BB  1/7/2012 13:58:33

我想要实现的是,

DATE       JOB    TIME SPENT
1/7/2012   AA     ADDING THE TIME SPENT for AA on 1/7/2012
7/7/2012   AA     ADDING THE TIME SPENT for AA on 7/7/2012
1/7/2012   BB 
7/7/2012   BB

我可以知道什么 SQL 可以达到预期的结果吗?

谢谢!!

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    假设START_TIMEEND_TIME 都是DATE 数据类型(而不是TIMESTAMPVARCHAR2)并假设START_TIMEEND_TIME 总是在同一天(即它不能在 1/7 晚开始并在 1/8 早结束)

    SELECT trunc(start_time), 
           job, 
           sum( end_time - start_time ) total_time_in_days
      FROM your_table
     GROUP BY trunc(start_time), job
     ORDER BY job, trunc(start_time)
    

    总数将以天数表示。如果您想回复INTERVAL

    SELECT trunc(start_time), 
           job, 
           sum( numtodsinterval( end_time - start_time, 'day' ) ) elapsed_interval
      FROM your_table
     GROUP BY trunc(start_time), job
     ORDER BY job, trunc(start_time)
    

    【讨论】:

    • 感谢您的快速回复。实际上我不知道它是否是时间戳类型,我只是在excel中获取数据。我可以将它导入MYSQL并进行计算吗?
    • @IvanChan - 你用 SQL 和 Oracle 标签标记了这个问题。但是现在您说您没有 Oracle 数据库,而是有一个包含数据的 Excel 电子表格?毫无疑问,您可以将电子表格数据加载到数据库中。但是,如果您将数据加载到 Oracle 以外的其他地方,您需要运行的查询会有所不同。
    • 好的,数据存储在Oracle中,但是有人将数据提取到excel中,但我手头没有oracle DB。谢谢!
    • @IvanChan - “我手头没有 Oracle DB”对您意味着什么?这是否意味着您无法访问 Oracle 数据库并且您无法要求他人为您运行查询?如果您想从 Excel 电子表格中的数据开始,我将删除我的答案并编辑您的问题以反映这一事实。
    • 不,明天早上我会尝试测试,感谢您的出色回答!
    猜你喜欢
    • 2020-03-12
    • 1970-01-01
    • 1970-01-01
    • 2019-01-26
    • 2017-07-16
    • 2015-10-20
    • 2010-09-10
    • 1970-01-01
    • 2023-04-05
    相关资源
    最近更新 更多