2011-09-08 133 views
0

我有一個時間格式的列,它需要從最新到最舊排序。我想要做的是找出每個相鄰記錄之間的時間差異。棘手的部分是我需要總結所有的時間差異,然後除以所有時間記錄的數量 - 1。這可以在MySQLMySQL添加時間值之間的差異來查找平均差異。

+0

你沒有在同一個問題中得到答案嗎?:http://stackoverflow.com/questions/7312055/how-do-you-create-an-average-time-difference-between-records-in-mysql –

+0

不是相當好的答案,但不完全是我需要。這些答案提供的是記錄的平均時間,我需要的是平均時間差異。所以我想我會把它分解成更小的部分。 – pointhigh

+0

你試過我的回答嗎?它計算'(MaxTime-MinTime)/(Count-1)',它與你想要的基本相同。 –

回答

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 

並就

SELECT avg(t2.time-t1.time) 
GROUP BY t1.someid 
使用的AVG
+0

感謝@Martin Nielsen對你的迴應,回答你關於我對Mysql知道多少的問題,並且與你的subquerys合作將我的知識推向最高。你能告訴我你是如何將它組裝成一個空洞查詢? – pointhigh