我有一个如下表
session stepId starttime
------ ----------- -----
1 1 10:00
1 1 10:10
1 2 10:40
1 3 10:50
1 4 11:00
我要计算的是每个步骤ID之间的平均时间,如果stepID相同,则像前两行一样,使用最新的行。 例如,对于上述查询,结果应为((10:40-10:10)+(10:50-10:40)+(11:00-10:50))/ 3。 我正在使用MySQL。
答案 0 :(得分:1)
SELECT
TIME(AVG(M.timediff))
FROM
(SELECT
TIME(b.starttime - a.starttime) AS timediff
FROM
(SELECT
stepId, MAX(starttime) starttime
FROM
test.test
GROUP BY stepId) a
LEFT JOIN test.test b ON a.stepId = b.stepId - 1
WHERE
a.starttime IS NOT NULL
AND b.starttime IS NOT NULL) AS M