is there way create column running number increment value 1 whenever value in column has specific value? example, if have
cola c change b c b change b . . .
then have
cola colb 1 c 1 change 2 b 2 c 2 b 2 change 3 b 3 3 . . . . . .
all of below solutions assume have explicit ordercriteria
you're ordering events.
here's how you'd postgresql 9.4:
select cola, count(*) filter (where cola = 'change') on (order ordercriteria) + 1 colb, my_table order ordercriteria
here's how you'd other rdbms supporting window functions:
(these include cubrid, db2, firebird 3, hana, informix, oracle, postgresql, redshift, sql server, sybase sql anywhere, , others)
select cola, count(case when cola = 'change' 1 end) on (order ordercriteria) + 1 colb, my_table order ordercriteria
here's how you'd other rdbms:
select cola, (select count(*) my_table t2 t2.ordercriteria <= t1.ordercriteria , t2.cola = 'change') + 1 colb my_table t1 order ordercriteria
Comments
Post a Comment