Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查表中的一个时间序列列是否有两个相邻的时间点,其间隔是否大于某个长度_Sql_Postgresql_Plpgsql - Fatal编程技术网

Sql 检查表中的一个时间序列列是否有两个相邻的时间点,其间隔是否大于某个长度

Sql 检查表中的一个时间序列列是否有两个相邻的时间点,其间隔是否大于某个长度,sql,postgresql,plpgsql,Sql,Postgresql,Plpgsql,我正在处理一个包含时间序列列的表上的数据预处理 玩具示例表A timestamp value 12:30:24 1 12:32:21 3 12:33:21 4 时间戳是有序的,并且总是递增的 当表有两个相邻的时间点,其时间间隔大于某个长度时,是否可以定义一个函数或其他内容来返回True表达式,否则返回False 我正在使用postgresql,谢谢你类似这样的东西: select count(*) > 0 from ( sele

我正在处理一个包含时间序列列的表上的数据预处理

玩具示例表A

    timestamp   value

    12:30:24    1
    12:32:21    3
    12:33:21    4
时间戳是有序的,并且总是递增的

当表有两个相邻的时间点,其时间间隔大于某个长度时,是否可以定义一个函数或其他内容来返回True表达式,否则返回False

我正在使用postgresql,谢谢你

类似这样的东西:

select count(*) > 0
from (
  select timestamp, 
         lag(timestamp) over (order by value) as prev_ts
  from table_a
) t
where timestamp - prev_ts < interval '1' minute;
它计算时间戳与其上一个时间戳之间的差异。时间戳的顺序由值列定义。外部查询然后统计差异小于1分钟的行数

滞后被称为窗口函数。有关这些方面的更多详细信息,请参见手册:

bool_或将在找到第一个真值后立即停止搜索

您的示例数据显示一个时间值。但它对时间戳的作用是相同的

select bool_or(bigger_than) as bigger_than
from (
    select 
        time - lag(time) over (order by time) 
        > 
        interval '1 minute' as bigger_than
    from table_a
) s;
 bigger_than 
-------------
 t