【发布时间】:2015-04-16 00:08:50
【问题描述】:
我有一张像这样的表
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
基本上通过使用 Order 列对数据进行排序。我想了解每个 ID 的连续 B 的数量。理想情况下,我想要的输出是
ID, Consec
1, 2
1, 4
因为段 B 连续出现在第 2 行和第 3 行(2 次),然后又出现在第 5、6、7、8 行(4 次)。
我想不出 SQL 中的解决方案,因为 SQL 中没有循环工具。
Teradata SQL 中是否有优雅的解决方案?
附:我正在处理的数据有大约 2000 万行。
在 R 中执行此操作的方法已在此处发布。
How to count the number of times an element appears consecutively in a data.table?
【问题讨论】: