postgresql - 如何使用 SQL 平均数天的每小时值
问题描述
我有一个带有每小时值的 SQL 表(postgreSQL/TimescaleDB),例如:
Timestamp Value
...
2021-02-17 13:00:00 2
2021-02-17 14:00:00 4
...
2021-02-18 13:00:00 3
2021-02-18 14:00:00 3
...
我想在特定时间跨度内将每个小时的平均值映射到今天的日期,所以像这样:
select avg(value)
from table
where Timestamp between '2021-02-10' and '2021-02-20'
group by *hourpart of timestamp*
今天(2021-10-08)的结果应该是:
...
Timestamp Value
2021-10-08 13:00:00 2.5
2021-10-08 14:00:00 3.5
...
如果我明天(2021-10-09)做同样的选择,结果应该变成:
...
Timestamp Value
2021-10-09 13:00:00 2.5
2021-10-09 14:00:00 3.5
...
解决方案
我自己解决了这个问题: 解决方案:
SELECT EXTRACT(HOUR FROM table."Timestamp") as hour,
avg(table."Value") as average
from table
where Timestamp between '2021-02-10' and '2021-02-20'
group by hour
order by hour;
推荐阅读
- javascript - 如何检查标记是否在反应原生地图中屏幕上显示的区域中
- javascript - Jquery - 只有第一个数据隐藏在 div 元素中
- python - 嘿,埃弗雷恩!(Python)
- woocommerce - 在 Woocommerce 的评论部分之前的产品页面中插入自定义消息
- javascript - 如何有条件地使用java脚本禁用复选框
- angular - 在 ng2-pdf-viewer 中为大型 pdf 文档自定义 pdf 渲染?
- go - 使用 smb2 在 golang 中打开 Micrsoft DFS 共享
- bash - 是否可以为 2 个等效的 Git 存储库指定不同的文件夹结构?
- html - flex wrap html和css
- javascript - 如何在 html 按钮单击时在服务器上运行文件