如何将时间序列表中的最新值连接到表

问题描述 投票:0回答:1

我在 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

sql postgresql
1个回答
0
投票

您可以使用

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);
© www.soinside.com 2019 - 2024. All rights reserved.