BIRT:计算时间间隔的平均值

时间:2011-02-03 13:14:24

标签: birt postgresql

我有以下数据库表,其中包含一系列任务:

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'Time'数据类型。但是,“时间”代表一天中的某个时间,而不是间隔。在BIRT中似乎没有INTERVAL的等价物。

2 个答案:

答案 0 :(得分:0)

不熟悉birt,但我认为最好的方法是让PostgreSQL做到。定义一个进行平均的视图,并从中进行SELECT。

答案 1 :(得分:0)

您是否尝试过avg聚合功能?

SELECT avg(time_out - time_in)as user_avg FROM tasks WHERE user_name ='bob';

选择avg(time_out - time_in)作为all_avg FROM tasks;