首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在SQLite3数据库表中找到时间间隔中断的位置

如何在SQLite3数据库表中找到时间间隔中断的位置
EN

Stack Overflow用户
提问于 2020-05-26 16:16:48
回答 1查看 111关注 0票数 0

我有一个SQLite3数据库,它有一个这样的表:

Time Val1 Val2 Val3

10:12:03 3.4 4.3 5

10:12:04 3.2 4.1 6

10:12:05 3.3 4.6 5

11:03:19 2.4 5.7 4

11:03:20 2.5 5.2 4

11:03:21 2.7 5.9 5

...

超过1秒的两行之间的时间范围意味着第一工作间隔的结束和第二工作间隔的开始。

所以,第一个工作间隔是10:12:03 - 10:12:05

第二个工作间隔是11:03:19 - 11:03:21

诸若此类。

我如何才能知道所有的时间戳开始间隔(10:12:03,11:03:19.)使用SQL?

EN

回答 1

Stack Overflow用户

发布于 2020-05-26 16:51:10

这是一个空白和岛屿问题:您希望显示与前一个不相邻的行(即每个岛的开始)。

下面是一种使用窗口函数的方法:

代码语言:javascript
运行
复制
select t.*
from (
    select 
        t.*,
        lag(time) over(order by time) lag_time
        from mytable t
) t
where
    lag_time is null
    or time >  datetime(lag_time, '+ 1 second')

lag()检索上一行的time。然后,我们对与前一行(或没有先前记录)的差大于1秒的行进行筛选。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62026695

复制
相关文章

相似问题

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