Postgres SQL: select 时间戳先于最大时间戳

Potsgres SQL: select timestamp prior to max timestamp

我在带有时间戳的 Postgres 中有一个 table:

timestamp
2022-01-01 00:52:53
2022-01-01 00:57:12
...
2022-02-13 11:00:31
2022-02-13 16:45:10

如何 select 最接近最大时间戳的时间戳?意思是,我想要时间戳 2022-02-13 11:00:31.

我正在寻找类似 max(timestamp)-1 的东西,这样我就可以经常做。谢谢

你可以这样做:

select *
from (
  select *,
    rank() over(order by timestamp desc) as rk
  from t
) x
where rk = 2

请参阅 DB Fiddle 中的 运行 示例。

我认为以下查询可能符合您的要求:

SELECT MAX(date_col) FROM test WHERE date_col < (SELECT MAX(date_col) from test);

DB Fiddle