sql - Postgres:从时间戳中分组平均值
问题描述
我在尝试创建执行以下操作的 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
这就是我所得到的。任何帮助将不胜感激。
解决方案
我想要每种颜色的平均持续时间,您可以按如下方式使用聚合:
select
colour,
avg(extract(epoch from (stop - start))) as avg_duration_seconds
from public.colour_record
group by colour
推荐阅读
- jquery - 仅显示 DataTables 中的特定行
- php - 找出全局安装了哪些作曲家包
- html - 为什么 Jinja2 的扩展语句和块语句不起作用?
- git - Monorepo *nx 受影响:构建 * 开发分支问题 - JENKINS
- android - Android中异步任务中的UI工作问题
- ios - CoreBluetooth GAP 服务 - 如何动态广播和更新服务特性?
- python - Python Numpy FFT 快速傅立叶变换 - 奇怪的结果
- javascript - 为什么推送到具有结构的数组有效但使用 json 推送却不行?
- autohotkey - 用变量替换自动热键文本
- node.js - 同时播放音频