如何在postgresql中获得平均时间

时间:2012-08-01 00:45:15

标签: sql postgresql intervals average

我有这样的表:

name   number   total_time    avg_time
tom      10      00:02:28        ?
kevin    6       09:22:25        ?

total_time是间隔的类型,我可以很容易地改为字符串。 现在,我希望得到像这样的avg_time

avg_time = total_time / number;

我徘徊如何得到结果?我试着计算一天,一小时,一分钟,一秒,但这太难了,谁能给我一些建议呢?非常感谢

4 个答案:

答案 0 :(得分:1)

希望这个例子(基于你的例子)很有帮助:

postgres=# SELECT *, total_time / number AS avg_time 
    FROM (SELECT INTERVAL '00:02:28' AS total_time, 10 AS number) a;
 total_time | number |  avg_time  
------------+--------+------------
 00:02:28   |     10 | 00:00:14.8
(1 row)

您能否更具体地说明这部分内容对您不起作用?

答案 1 :(得分:0)

我不知道是否正确,只需轻松使用/就可以了,就像这样

select interval '02:00:00'/4

我得到了正确的答案,所以问题可能很简单

select total_time / number

答案 2 :(得分:0)

以下使用纪元时间并且完美无缺(18000是纪元的开始)

{{1}}

答案 3 :(得分:-1)

您也可以使用avg运算符: select name, avg(total_time) from table group by name;