postgres:根据时间戳对平均值进行分组

mfpqipee  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(360)

我在尝试创建执行以下操作的postgresql查询时遇到一些问题:
从开始和停止时间开始计算持续时间(以秒为单位)
指定开始/结束(或大于开始),忽略其余部分
将它们按颜色列表分组
组的平均持续时间
数据如下所示:

|colour | start | stop |
|blue|2020-02-03 22:18:08.561+00|2020-02-03 22:18:09.674+00|
|blue|2020-02-03 22:18:37.902+00|2020-02-03 22:18:40.479+00|
|red|2020-02-03 22:18:41.121+00|2020-02-03 22:18:42.272+00|
|green|2020-02-03 22:18:41.113+00|2020-02-03 22:18:42.835+00|
|red|2020-02-03 22:18:41.105+00|2020-02-03 22:18:43.223+00|

到目前为止,我只得到了以秒为单位的持续时间:

SELECT colour, start, stop, 
EXTRACT(EPOCH FROM (stop - start)) as durationSeconds
FROM public.colour_record

就我所知。任何帮助都不会很感激。

2cmtqfgy

2cmtqfgy1#

如果要计算每种颜色的平均持续时间,可以按如下方式使用聚合:

select 
    colour, 
    avg(extract(epoch from (stop - start))) as avg_duration_seconds
from public.colour_record
group by colour

相关问题