我在 postgres 中有两个表。
CREATE TABLE data (
name VARCHAR(10) PRIMARY KEY
);
CREATE TABLE timeseries (
name VARCHAR(10) NOT NULL REFERENCES data(name),
time TIMESTAMP NOT NULL,
value INTEGER NOT NULL,
PRIMARY KEY (name, time)
);
如何以这种方式将时间序列表连接到数据表,我将获得具有最新时间戳的
value
列
您可以使用
timeseries
和自定义order by将
distinct on
表的最新记录提取到CTE中,然后与data
表连接(假设它有更多列,上面只是一个示例)。
with t as
(
select distinct on (name) *
from timeseries
order by name, time desc
)
select <whatever you need>
from t join data using (name);