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
我有一个 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