2011-02-03 178 views
0

的平均我有由一系列任务以下数据库表:BIRT:计算时间间隔

id BIGINT NOT NULL 
time_in timestamp(0) with time zone, 
time_out timestamp(0) with time zone, 
user_name text NOT NULL 

我计算任务的持续时间(TIME_OUT - time_in)。我需要先计算给定用户的平均任务持续时间,然后再计算所有用户的平均任务持续时间。

我在用于获取数据集的SQL查询中执行第一个操作。这是INTERVAL的结果,但是在BIRT中它被看作是一个字符串(可能是因为INTERVAL数据类型不存在)。

所以,现在我有一组字符串,每个代表一个INTERVAL。我如何计算他们的平均值?

P.S.我首先想到我应该通过使用BIRT'时间'数据类型来做到这一点。但是,“时间”代表一天的时间,而不是间隔。 BIRT中的INTERVAL似乎并不相同。

+0

为什么不使用SQL计算第二个平均值? – 2011-02-03 13:33:18

回答

0

您是否尝试过avg聚合函数?选择avg(time_out - time_in)作为user_avg FROM任务WHERE user_name ='bob';选择avg(time_out_time_in)作为user_avg FROM任务WHERE user_name ='bob';

SELECT avg(time_out - time_in)as all_avg FROM tasks;

0

不熟悉birt,但我认为最好的办法是让PostgreSQL做到这一点。定义一个可以进行平均的视图,并从中进行选择。