MySQL添加时间值之间的差异以找到平均差异。

时间:2011-09-08 14:45:27

标签: mysql

我有一个时间格式的列,它需要从最新到最旧排序。我想做的是找出每个相邻记录之间的时间差异。棘手的部分是我需要总结所有的时间差异,然后除以所有时间记录的计数 - 1。可以在MySQL中完成吗

1 个答案:

答案 0 :(得分:0)

对不起,如果我有点过于罗嗦,但我无法收集你的mysql经验。

如果我不明白你的问题,也道歉。但是这里......

首先,你不需要总结和分配,MySQL有一个平均功能,你称为avg()。详情请见此处 http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html

我想你可以通过子查询完成你想要的。有关子查询的更多信息,请查看此处。 http://dev.mysql.com/doc/refman/5.0/en/select.html

基本上,您希望首先创建一个对列进行排序的表。

 SELECT someid, time
    FROM table
    ORDER BY TIME

在子表中使用它,该子查询将表连接到自身但具有移位索引(以获取之前和之后的时间)

SELECT *
    FROM table1 as t1 INNER JOIN table2 as t2 ON t1.someid = t2.someid+1

并使用avg

SELECT avg(t2.time-t1.time)
GROUP BY t1.someid