By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
declare @Table table (id int identity, value int)
insert @Table(value) select 0
insert @Table(value) select 1
insert @Table(value) select 1
insert @Table(value) select 1
insert @Table(value) select 0
insert @Table(value) select 1
insert @Table(value) select 1;
select t.*,
value * power(2, row_number() over (partition by grp order by id) - 1) as generatedsequence
from (select t.*, sum(1 - value) over (order by id) as grp
from @table t
) t
id | value | grp | generatedsequence |
---|---|---|---|
1 | 0 | 1 | 0 |
2 | 1 | 1 | 2 |
3 | 1 | 1 | 4 |
4 | 1 | 1 | 8 |
5 | 0 | 2 | 0 |
6 | 1 | 2 | 2 |
7 | 1 | 2 | 4 |