2012-01-12 142 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