我有这样的表:
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;
我徘徊如何得到结果?我尝试计算天,小时,分钟,秒,但这太难了,谁能给我一些建议?多谢
我有这样的表:
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;
我徘徊如何得到结果?我尝试计算天,小时,分钟,秒,但这太难了,谁能给我一些建议?多谢
希望这个例子(基于你的)是有帮助的:
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)
您能否更具体地说明其中的哪一部分不适合您?
不知道对不对,随便用/就可以了,像这样
select interval '02:00:00'/4
我得到了正确的答案,所以问题可能很简单
select total_time / number
下面使用纪元时间并且工作完美(18000是纪元的开始)
select to_timestamp(avg(18000 +
cast(extract(epoch from badge_in_time::time) as integer)
)
)::time as Avg_Badge_in
您还可以使用avg运算符:
select name, avg(total_time) from table group by name;