gpt4 book ai didi

sql - Postgresql 选择创建日期相差 2 小时的两行

转载 作者:行者123 更新时间:2023-11-29 13:30:59 25 4
gpt4 key购买 nike

您好 Postgresql 专家。

我有一个关于 postgresql 日期差异选择的问题。 (不知道我说的对不对)

我有这样一个数据库结构

row_id varchar(32)

event varchar(32)

event_name varchar(32)

create_date timestamp without time zone

当然,我有将近 500,000 行。

但我想搜索相邻的两行,并且在创建日期之间有两个小时的间隔,我该如何使用 postgresql 进行搜索?

最佳答案

您可以使用 lag() 执行此操作:

select t.*
from (select t.*,
lag(create_date) over (order by rowid) as prev_create_date
from table t
) t
where prev_create_date < create_date - 2 * interval '1 hour';

编辑:

如果你真的想要两行,你可以同时使用 lead()lag():

select t.*
from (select t.*,
lag(create_date) over (order by rowid) as prev_create_date,
lead(create_date) over (order by rowid) as next_create_date
from table t
) t
where prev_create_date < create_date - 2 * interval '1 hour' or
next_create_date > create_date + 2 * interval '1 hour'
order by rowid;

关于sql - Postgresql 选择创建日期相差 2 小时的两行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23470744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com