【问题标题】:SQL find last value for multiple criteriasSQL 查找多个条件的最后一个值
【发布时间】:2021-04-23 08:59:47
【问题描述】:

我有一张这样的桌子:

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

【问题讨论】:

    标签: sql postgresql micronaut-data


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-25
      • 1970-01-01
      • 2020-11-18
      相关资源
      最近更新 更多