mysql查询,用于计算给定日期范围内条目之间的平均时间

时间:2013-03-02 18:20:23

标签: mysql

我有一个MYSQL表,其中包含以下列:entryDate,entryTime,entryAmt

一些典型的行看起来像:

2013-01-02, 11:15:15, 30
2013-01-02, 11:52:10, 15
2013-01-02, 14:48:16, 15
2013-01-01, 10:10:11, 30
2013-01-01, 11:00:00, 15

等...

现在我的问题是,是否可以使用MYSQL查询来查找entryTime列中一天活动价值的平均差异?也就是说,例如,我想知道当天每个entryTime之间的平均时间长度是什么(在2013-01-02,entryTimes是11:15:15,11:52:10和14: 48:16。我想知道每次列出的时间之间经过的平均时间。)

1 个答案:

答案 0 :(得分:1)

试试这个

SELECT `entryDate`, 
       SEC_TO_TIME(
         CASE WHEN COUNT(`entryTime`) = 1 THEN 0 
           ELSE TIME_TO_SEC(TIMEDIFF(MAX(`entryTime`), MIN(`entryTime`))) / (COUNT(`entryTime`) - 1) 
         END) average
  FROM entries
 GROUP BY `entryDate`

输出

+------------+----------+
| date       | average  |
+------------+----------+
| 2013-01-01 | 00:49:49 |
| 2013-01-02 | 01:46:31 |
+------------+----------+