SQL 查找多个条件的最后一个值

SQL find last value for multiple criterias

我有一个 table 这样的:

CREATE TABLE mytable
(
    name          varchar(255)                NOT NULL,
    value         varchar(255)                NOT NULL,
    timestamp     TIMESTAMP WITHOUT TIME ZONE NOT NULL,
);

其中包含按名称、值和时间戳排列的数据 - 显然 ;-)

我想创建一个 sql 查询来获取最后一个值。

通过单个名称获取数据非常简单

select * from mytable where name = :name ORDER BY timestamp DESC LIMIT 1

但我喜欢查询姓名列表。 并获取每个名称的最后一个值。

有什么想法吗?

问候 奥利弗

P.S 使用 POSTGRESQL

您可以将 DISTINCT ON (name) 子句与排序子句结合使用,例如

SELECT DISTINCT ON (name)
  name,
  value,
  timestamp
FROM mytable
ORDER BY name, timestamp DESC