我不必对POSTGRESS有太多的经验,我有以下几个字段的datatable:
id timestamp value sensor
1 2020-10-10 14:10:18 1.4 1
2 2020-10-10 14:40:15 1.1 1
3 2020-10-10 15:40:12 0.1 2
4 2020-10-10 15:50:01 2.0 2
5 2020-10-11 15:50:01 1.2 3我希望获得每个传感器每小时和{value}的结果,如下所示:
timestamp value sensor
2020-10-10 14:00:00 2.5 1
2020-10-10 15:00:00 2.1 2
2020-10-11 15:00:01 1.2 3我试过这个:
SELECT sensor, timestamp, sum(value) FROM datatable ORDER BY timestamp GROUP BY date_part('hour', timestamp),sensor它会引起错误,“时间戳”必须出现在GROUP子句中,或者用于聚合函数中。
我应该如何构建这个查询?
发布于 2022-04-18 14:46:47
您可以尝试使用date_trunc函数,此外,您还可以在ORDER BY之前使用GROUP BY。
Date_trunc(字段、源、time_zone )
SELECT date_trunc('hour', "timestamp"),sum(value) ,sensor
FROM datatable
GROUP BY date_trunc('hour', "timestamp"),sensor
ORDER BY 1 https://stackoverflow.com/questions/71913256
复制相似问题