以分钟为单位的数据的经过时间总和

时间:2014-03-26 14:40:04

标签: mysql sql

我有逐分钟收集的数据。它看起来像这样(这只是一个摘录):

id      tstamp              name    elapsed_time    reason
54945   2014-03-26 15:09:02 foobar  00:02:02        6
54845   2014-03-26 15:08:02 foobar  00:01:02        6
54775   2014-03-26 15:07:02 foobar  00:06:02        9
54711   2014-03-26 15:06:02 foobar  00:05:02        9
54647   2014-03-26 15:05:02 foobar  00:04:01        9
54583   2014-03-26 15:04:02 foobar  00:03:01        9
54519   2014-03-26 15:03:02 foobar  00:02:01        9
54455   2014-03-26 15:02:02 foobar  00:01:00        9
54375   2014-03-26 15:01:02 foobar  00:57:38        6
54311   2014-03-26 15:00:02 foobar  00:56:38        6
54246   2014-03-26 14:59:02 foobar  00:55:37        6
54182   2014-03-26 14:58:02 foobar  00:54:37        6

我想计算一个特定代码(理由)上某个“名称”的时间。有人可以在不同的时刻处理某个代码,并且可以随时返回到先前的代码,在这种情况下,elapsed_time将被重置。

我认为一个简单的SQL查询可以完成工作,所以我尝试了:

SELECT agent_name, tstamp, reason, elapsed_time
    FROM rtv_data 
    WHERE DATE(tstamp) = DATE(CURDATE()) AND agent_name = 'foobar'
    GROUP BY reason

但结果并不像预期的那样:

name    tstamp              reason  elapsed_time
foobar  2014-03-26 14:03:25 6       00:00:11
foobar  2014-03-26 12:54:40 9       03:51:22

我尝试过研究时间序列的主题。显然,这可以使用自联接来解决,但由于我对SQL很新,我只是想不出怎么做。

任何帮助都将不胜感激。

0 个答案:

没有答案