在SQL Server中查找特定条件连续为真的开始时间和结束时间,可以通过以下步骤实现:
以下是一个示例查询,演示如何在SQL Server中查找特定条件连续为真的开始时间和结束时间:
-- 创建临时表存储满足特定条件的数据
CREATE TABLE #TempData (
ID INT,
StartTime DATETIME,
EndTime DATETIME
)
-- 插入满足特定条件的数据到临时表
INSERT INTO #TempData (ID, StartTime, EndTime)
SELECT ID, StartTime, EndTime
FROM YourTable
WHERE YourCondition = 'True'
-- 使用窗口函数为每一行分配组标识
SELECT ID, StartTime, EndTime,
ROW_NUMBER() OVER (ORDER BY StartTime) - ROW_NUMBER() OVER (PARTITION BY ID ORDER BY StartTime) AS GroupID
INTO #GroupedData
FROM #TempData
-- 使用自连接比较相邻行的组标识,确定开始时间和结束时间
SELECT gd1.ID, gd1.StartTime AS StartTime, MAX(gd2.EndTime) AS EndTime
FROM #GroupedData gd1
INNER JOIN #GroupedData gd2 ON gd1.ID = gd2.ID AND gd1.GroupID = gd2.GroupID - 1
GROUP BY gd1.ID, gd1.StartTime
-- 删除临时表
DROP TABLE #TempData
DROP TABLE #GroupedData
这个查询将返回满足特定条件连续为真的开始时间和结束时间的组合。你可以根据实际情况修改表名、列名和条件来适应你的需求。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云