I have a table that looks like this
ID, Order, Segment
1, 1, A
1, 2, B
1, 3, B
1, 4, C
1, 5, B
1, 6, B
1, 7, B
1, 8, B
Basically by ordering the data using the Order column. I would like to understand the number of consecutive B's for each of the ID's. Ideally the output I would like is
ID, Consec
1, 2
1, 4
Because the segment B appears consecutively in row 2 and 3 (2 times), and then again in row 5,6,7,8 (4 times).
I can't think of a solution in SQL since there is no loop facility in SQL.
Are there elegant solutions in Teradata SQL?
P.S. The data I am dealing with has ~20 million rows.
The way to do it in R has been published here.
How to count the number of times an element appears consecutively in a data.table?