【发布时间】:2018-08-22 03:49:47
【问题描述】:
我正在使用 SQL Server,想知道是否可以遍历时间序列数据,直到满足特定条件并基于该标签我在其他表中的数据?
例如,假设我有一个这样的表:
Id Date Some_kind_of_event
+--+----------+------------------
1 |2018-01-01|dsdf...
1 |2018-01-06|sdfs...
1 |2018-01-29|fsdfs...
2 |2018-05-10|sdfs...
2 |2018-05-11|fgdf...
2 |2018-05-12|asda...
3 |2018-02-15|sgsd...
3 |2018-02-16|rgw...
3 |2018-02-17|sgs...
3 |2018-02-28|sgs...
我想要得到的是为每个键计算两个相邻事件之间的差异,并找出这两个相邻事件之间是否存在差异> 10天。如果是的话,我想停止对该特定键的迭代并将标签“非活动”,否则“活动”放在我的另一个表中。完成一个键后,我们从另一个开始。
因此,例如 id = 1 将获得标签“非活动”,因为存在两个相差大于 10 天的日期。最终的结果应该是这样的:
Id Label
+--+----------+
1 |inactive
2 |active
3 |inactive
任何想法如何做到这一点?用 SQL 可以做到吗?
【问题讨论】:
-
考虑编辑您的问题并添加您迄今为止尝试过的查询,或者可能是您认为正确查询的外观的“伪查询”。
-
另外,您需要其他表数据的样本,因此我们知道如何将它们联系起来,以及哪种方法最适合您的场景。
标签: sql sql-server database