获取给定第二个 Postgres 的最新记录

Posted

技术标签:

【中文标题】获取给定第二个 Postgres 的最新记录【英文标题】:Obtain latest record for a given second Postgres 【发布时间】:2020-11-02 22:05:44 【问题描述】:

我有具有毫秒精度时间戳的数据。我只想过滤给定秒内的最新时间戳。 IE。记录 (2020-07-13 5:05.38.009, event1), (2020-07-13 5:05.38.012, event2) 应该只检索后者。

我尝试了以下方法:

SELECT 
    timestamp as time, event as value, event_type as metric 
FROM 
    table
GROUP BY 
    date_trunc('second', time)

然后我也被要求按事件分组,我看到了所有数据(好像没有提供分组依据)

【问题讨论】:

【参考方案1】:

在 Postgres 中,你可以使用distinct on:

select distinct on (date_trunc('second', time)) t.*
from t
order by time desc;

【讨论】:

以上是关于获取给定第二个 Postgres 的最新记录的主要内容,如果未能解决你的问题,请参考以下文章

通过 linq 对实体查询进行分组,以通过加入表来获取具有最新时间戳的一条记录

加入包含多条记录的第二个表,取最新的

如何从对象集合中获取第二个最新日期的对象

hasCycle

hasCycle

环形链表