gpt4 book ai didi

sql - 使用 SQL 查找数据库记录中的间隙(缺失记录)

转载 作者:行者123 更新时间:2023-12-02 14:37:42 25 4
gpt4 key购买 nike

我有一个表,其中包含连续每小时的记录。每个小时都有一定的值(value)。我想要一个 T-SQL 查询来检索丢失的记录(丢失的时间、间隙)。因此,对于下面的 DDL,我应该获得缺失时间 04/01/2010 02:00 AM 的记录(假设日期范围在第一个记录和最后一个记录之间)。使用 SQL Server 2005。更喜欢基于集合的查询。

DDL:
CREATE TABLE [Readings](
[StartDate] [datetime] NOT NULL,
[SomeValue] [int] NOT NULL
)
INSERT INTO [Readings]([StartDate], [SomeValue])
SELECT '20100401 00:00:00.000', 2 UNION ALL
SELECT '20100401 01:00:00.000', 3 UNION ALL
SELECT '20100401 03:00:00.000', 45

最佳答案

假设所有记录都是精确的时间:

WITH    q(s, e) AS
(
SELECT MIN(StartDate), MAX(StartDate)
FROM Readings
UNION ALL
SELECT DATEADD(hour, 1, s), e
FROM q
WHERE s < e
)
SELECT *
FROM q
WHERE s NOT IN
(
SELECT StartDate
FROM Readings
)
OPTION (MAXRECURSION 0)

关于sql - 使用 SQL 查找数据库记录中的间隙(缺失记录),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2693171/

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