在SQL Server中标记列中的连续行是否具有相同的值
如果SQL Server中的标志列中至少有3个连续的1,我想添加一个标记ID的列 这可能会有所帮助。这似乎与你的要求相似,可能会让你走上正确的轨道。 所以可能是类似的东西在SQL Server中标记列中的连续行是否具有相同的值,sql,sql-server,Sql,Sql Server,如果SQL Server中的标志列中至少有3个连续的1,我想添加一个标记ID的列 这可能会有所帮助。这似乎与你的要求相似,可能会让你走上正确的轨道。 所以可能是类似的东西 ID Flag 1000 0 1000 1 1000 1 1000 1 1000 1 1000 0 2000 0 2000 1 2000 0 2000 1 2000 0 这里的预期输出是什么?实际序列是否有字段?表中是否有更多数据?根据您显示的数据,无法对
ID Flag
1000 0
1000 1
1000 1
1000 1
1000 1
1000 0
2000 0
2000 1
2000 0
2000 1
2000 0
这里的预期输出是什么?实际序列是否有字段?表中是否有更多数据?根据您显示的数据,无法对数据排序以确定哪些记录是连续的。SQL表表示无序集。除非另一列提供排序信息,否则不存在连续值。
CREATE TABLE Table1 (
id int,
flag bit)
INSERT into Table1 (id,flag)
VALUES (1000,0),(1000,1),(1000,1),(1000,1)
SELECT t.*
FROM (SELECT t.*, count(*) over (partition by ID) as cnt
FROM (SELECT table1.*,
(row_number() over (partition by id order by flag)
) as grp
from table1
) t
WHERE flag = 1
) t
WHERE cnt >= 3;