许多记录的平均运行时间


Average elapsed time over many records

使用PHP访问mySQL

我有10000多条记录,每条记录都有一个开始时间和一个结束时间。

我想要使用这些记录很多,所以我想了解如何优化查询,因为我写PHP函数来探索数据。

第一个,我想要所有记录的平均运行时间,即所有记录的平均值(结束减去开始)。

[编辑]抱歉:问题是:我可以写一个查询,将返回所有记录的所有时间差的平均值?还是在获得TIMEDIFFS返回后(在10,000次迭代的循环中)在PHP中进行平均?

如果我可以在mySQL查询中做到这一点,我如何构建它?显然,它将涉及timemediff()和AVG(),但我不确定我是否可以在一个查询中做到这一点,或者如果我需要更多。

这是畸形的:SELECT timeff (startdatetime,enddatetime) from myTable

假设这是我的表:

myTable: ID startdatetime enddatetime 1 2014-05-06 12:31:00 1 2014-05-06 12:41:00 2 2014-05-06 12:51:00 1 2014-05-06 12:55:00

我想要回平均值:(41-31)+(55-51)/2 = 7

(我想我必须将经过的时间转换为秒,然后取其平均值,然后将其转换回分钟。)

好的。一旦我弄清楚我要找的是什么,搜寻就容易多了。我已经拼凑出了这个:

SELECT SEC_TO_TIME(AVG(TIME_TO_SEC(timemediff (enddatetime,startdatetime))))) from myTable WHERE (enddatetime IS NOT NULL AND startdatetime IS NOT NULL)