Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.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 - Fatal编程技术网

Mysql 以分钟为单位的已用时间总和数据

Mysql 以分钟为单位的已用时间总和数据,mysql,sql,Mysql,Sql,我有每分钟收集的数据。它看起来像这样(这只是一个摘录): 我想计算某个“名字”在某个代码上出现的时间(原因)。某人可以在不同的时间使用某个代码,并且可以随时返回到以前的代码,在这种情况下,经过的时间将被重置 我以为一个简单的SQL查询就能完成任务,所以我尝试: SELECT agent_name, tstamp, reason, elapsed_time FROM rtv_data WHERE DATE(tstamp) = DATE(CURDATE()) AND agent_n

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

我想计算某个“名字”在某个代码上出现的时间(原因)。某人可以在不同的时间使用某个代码,并且可以随时返回到以前的代码,在这种情况下,经过的时间将被重置

我以为一个简单的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还相当陌生,所以我不知道如何做到这一点


任何帮助都将不胜感激。

您希望精度降低到第二级吗?如果没有,你可以按姓名和原因进行一次计数(1),这将基本上为你提供代理在每个原因上花费的分钟数。我认为你的思路是正确的。像这样的东西应该可以满足您的需求
选择名称、原因、和(时间到秒(已用时间))作为总已用秒数。。。按名称分组,原因也是,这是您的数据库模式吗?你能修改数据的存储方式吗?@JeremyCook:这不会给他正确的答案,因为他的“已用时间”字段是不可求和的,它已经是一个运行总数(55分钟、56分钟、57分钟…),谢谢你的回答不,不需要精确到秒。我尝试了计数(1)行,但我看不出这对我有多大的帮助,就像分组逐行一样。你能详细介绍一下吗JeremyCook感谢您的回答,但正如KyleHale所说,经过的时间字段是不可求和的。只有代码开关前的最后几行是可求和的。-是的,这是DB模式,是的,我可以修改数据的存储方式。不过,这就是数据的呈现和收集方式。你有什么建议?
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