【发布时间】:2015-10-27 00:43:52
【问题描述】:
我有很多行约会成员 ID 和约会日期。我正在尝试找到一种粗略识别约会顺序的方法。例如,下面我的用户“A”有五个约会记录。这些似乎是两个约会顺序,一个在 2 月,另一个在 5 月。
| user | date |
| A | 02-01-2014|
| A | 02-09-2014|
| A | 02-20-2014|
| A | 05-10-2014|
| A | 05-15-2014|
| B | 01-05-2015|
| B | 01-20-2015|
我试图提出的输出如下。我希望能够选择一些阈值,比如 45 天,在这一点上将开始一个新的序列。例如,用户“A”在 2014 年 5 月 10 日有一个约会,这是该用户几个月来的第一次约会。因此,该约会在附加列中开始一个新序列。最终结果是每个用户都有一组约会,其中有一个额外的列来标识每行属于哪个序列。
| user | date | Sequence |
| A | 02-01-2014| 1 |
| A | 02-09-2014| 1 |
| A | 02-20-2014| 1 |
| A | 05-10-2014| 2 |
| A | 05-15-2014| 2 |
| B | 01-05-2015| 1 |
| B | 01-20-2015| 1 |
我似乎无法找到将这种逻辑融入 CASE 语句的方法。我猜想丢失的部分可以参考之前的约会(如果存在的话)。有什么建议吗?谢谢!
【问题讨论】:
标签: sql sql-server database tsql date