2017-09-21 33 views
-3
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 Serverの "フラグ"列に少なくとも3つ連続する "1"がある場合、IDにフラグを付ける列を追加します。SQL Serverで列の連続する行が同じ値を持つ場合にフラグを付ける

+1

はここにあなたの予想される出力は何ですか? –

+1

実際のシーケンスのフィールドはありますか? –

+1

テーブルにさらにデータがありますか?表示したデータに基づいて、どのレコードが連続しているかを判断するためにデータを並べる方法はありません。 – Diado

答えて

0

これが役立ちます。それはあなたが求めているものに似ているようで、あなたを正しい道に導くかもしれません。 Find records with 3 or more consecutive records with same value

だから、これと似たような多分

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; 
関連する問題