POSTGRESQL Time1=Time2和Time2的值2+;1小时间隔
Hy编码员,我有个问题。 我有一个表1,有2列(时间戳,值1)和3行。表2有两列(时间戳,值2)和1000行 表1为样品的实验室值表2为间隔3分钟的在线测量值 我想表示表2中从时间戳1=时间戳2+1小时开始的间隔内的所有值2 有人有主意吗?POSTGRESQL Time1=Time2和Time2的值2+;1小时间隔,postgresql,Postgresql,Hy编码员,我有个问题。 我有一个表1,有2列(时间戳,值1)和3行。表2有两列(时间戳,值2)和1000行 表1为样品的实验室值表2为间隔3分钟的在线测量值 我想表示表2中从时间戳1=时间戳2+1小时开始的间隔内的所有值2 有人有主意吗? 您可以使用以下条件: t2.timestamp BETWEEN t1.timestamp - '1 hour'::interval AND t1.timestamp 此条件可用于联接如下表: SELECT * -- the columns you ne
您可以使用以下条件:
t2.timestamp BETWEEN t1.timestamp - '1 hour'::interval AND t1.timestamp
此条件可用于联接如下表:
SELECT * -- the columns you need
FROM table1
LEFT JOIN table2 t2
ON t2.timestamp BETWEEN t1.timestamp - '1 hour'::interval AND t1.timestamp
要从表2中获取值的平均值,可以启用聚合:
SELECT t1.timestamp, t1.value, AVG(t2.value) avg_value2
FROM table1
LEFT JOIN table2 t2
ON t2.timestamp BETWEEN t1.timestamp - '1 hour'::interval AND t1.timestamp
GROUP BY t1.timestamp, t1.value
它起作用了!谢谢!如何在此时间间隔内使用表2中的值1的平均值?@Sascha:您可以使用聚合。我更新了我的答案。