首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PostgreSQL为每个id查找时间差超过5秒的所有行

PostgreSQL为每个id查找时间差超过5秒的所有行
EN

Stack Overflow用户
提问于 2022-01-27 16:35:56
回答 1查看 36关注 0票数 1

我有一个由以下数据组成的表格:

代码语言:javascript
复制
id       status       timestamp
1        REGISTERED   1000
2        REGISTERED   1030
2        COMPLETED    1031
1        PROCESSING   1035
3        REGISTERED   1040
3        COMPLETED    1041
1        COMPLETED    1048
4        REGISTERED   1049
5        REGISTERED   1050
5        PROCESSING   1056
6        REGISTERED   1060
6        PROCESSING   1062
6        COMPLETED    1080

我需要一个查询,该查询查找所有已注册状态的行,该查询的下一行将在稍后发生>=5时间戳单元,或者直接丢失。对于上述数据,将返回以下行:

代码语言:javascript
复制
id       status       timestamp
1        REGISTERED   1000
4        REGISTERED   1049
5        REGISTERED   1050
EN

回答 1

Stack Overflow用户

发布于 2022-01-27 16:45:59

您可以使用lead

代码语言:javascript
复制
select id, status, timestamp
from (
    select id, status, timestamp
       , lead(timestamp) over(partition by id order by timestamp) nxt
    from mytable
) t 
where status = 'REGISTERED' and (nxt is null or timestamp < nxt - 5)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70882276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档