gpt4 book ai didi

sql - 查询 - 在一系列时间戳中查找空间隔

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

我有一个存储历史数据的表。我每 30 秒从不同类型的源中在此查询中插入一行,显然有一个关联的时间戳。

让我的参数对 1 小时不利。

由于我的服务是按时间收费的,所以我需要知道,例如,在某个特定的月份,这个月内是否有一个时间间隔等于或超过我的 1 小时间隔。

表格的简化结构如下:

tid serial primary key,
tunitd id int,
tts timestamp default now(),
tdescr text

我不想编写一个循环遍历所有记录并逐一比较它们的函数,因为我认为这会耗费时间和内存。

有没有办法直接从 SQL 执行此操作,或者使用 PostgreSQL 中的间隔类型?

谢谢。

最佳答案

这个小的 SQL 查询将显示所有持续时间超过一小时的间隙:

select tts, next_tts, next_tts-tts as diff from
(select a.tts, min(b.tts) as next_tts
from test1 a
inner join test1 b ON a.tts < b.tts
GROUP BY a.tts) as c
where next_tts - tts > INTERVAL '1 hour'
order by tts;

SQL Fiddle

关于sql - 查询 - 在一系列时间戳中查找空间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20559500/

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