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