【发布时间】:2017-11-29 10:56:32
【问题描述】:
使用这篇文章,我实现了一个查询来确定用户事件的打包间隔:
http://www.itprotoday.com/microsoft-sql-server/new-solution-packing-intervals-problem
我最终得到以下输出: 但是,我无法理解的是如何按 userId 对每个日期的打包间隔进行分组。基本上,我需要一个组列,当 isStart 为 1 时每行递增,但当 isStart 为空时输出与前一行相同。
应该这样:
Row 1: 1
Row 2: 2
Row 3: 2
Row 4: 3
Row 5: 4
Row 6: 5
Row 7: 6
Row 8: 7
Row 9: 8
Row 10: 9
Row 11: 9
Row 12: 9
Row 13: 10
...等
然后,我可以检索每个组的最小开始和最大结束。我敢肯定这真的很明显,但我似乎无法发现它!
【问题讨论】:
-
什么版本的 SQL Server。很重要....
-
如果 SQL Server 2012 则:stackoverflow.com/a/10309947/2450224
标签: sql sql-server packing