使用PHP访问mySQL。
我有10,000多条记录,每条记录都有一个开始时间和一个结束时间。
我想要处理这些记录很多,所以我想了解如何在编写PHP函数来探索数据时优化查询。
第一个,我想要所有记录的平均经过时间,即所有记录的平均值(结束减去开始)。
[编辑] 抱歉:问题是:我可以编写一个单独的查询来返回所有记录的所有timediff的平均值吗?或者在获得TIMEDIFFS后(在10,000次迭代的循环中)在PHP中进行平均化?
如果我可以在mySQL查询中执行此操作,我该如何构建它?显然,它将涉及TIMEDIFF()和AVG(),但我不确定我是否可以在一个查询中执行此操作,或者我是否需要更多查询。
这是错误的: 从myTable中选择AVG(从myTable中选择TIMEDIFF(startdatetime,enddatetime))
假设这是我的表:
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
(我想我必须将经过的时间转换为秒,然后将其平均,然后将其转换回分钟。)
答案 0 :(得分:0)
从myTable WHERE中选择SEC_TO_TIME(AVG(TIME_TO_SEC(TIMEDIFF(enddatetime,startdatetime))))(enddatetime IS NOT NULL且startdatetime IS NOT NULL)