2012-01-12 139 views
3

每個記錄都有一個started_atcompleted_at日期時間字段。計算某人開始和完成的時間顯然很容易。計算所有記錄中兩個日期時間之間的平均時間?

但我需要做的是計算從開始到完成所有記錄的平均時間。

最終希望能夠說「平均需要X個時間才能開始和完成」。

我正在運行Rails 3.0.6,以防一些已經內置的功能。

此外,它是一個Postgresql數據庫,但理想情況下,這可以跨越其他數據庫。

回答

3

一個純SQL的解決辦法是:

SELECT AVG(TotTime) 
FROM (SELECT DateDiff(minute, started_at, completed_at) as 'TotTime' 
     FROM MyTable 
     WHERE <stuff>) as SubQuery 

可以在DateDiff功能改變的部分是你需要什麼(小時,秒,毫秒,等等)。

+1

是*'TotTime' *你在花園裏呆了一段時間嗎? :) – MatBailie 2012-01-12 16:43:59

+0

DateDiff是一個通用的SQL函數,還是應該可以在PostgreSQL上正常工作? – Shpigford 2012-01-12 18:44:58

+1

'DATEDIFF'是一個SQL Server功能。你真的應該指定你正在使用的RDBMS。 – JNK 2012-01-12 18:48:05