【发布时间】:2016-10-12 06:58:18
【问题描述】:
我有一个表,其中包含两个名为“AllocationTimestamp”和“DeallocationTimestamp”的列以及一个名为“UserId”的列
可以在给定时间分配许多用户,但是一旦分配了第一个用户,会话就会开始,当没有分配用户时,会话就会结束。
例如:
User1: 2016-01-01 -> 2016-01-05
User2: 2016-01-02 -> 2016-01-10
User1: 2016-01-07 -> 2016-01-15
User3: 2016-01-03 -> 2016-01-08
User1: 2016-01-20 -> 2016-01-22
User2: 2016-01-20 -> 2016-01-25
User1: 2016-01-25 -> 2016-01-28
这应该给出两个会话,一个从 2016-01-01 开始,到 2016-01-15 结束,另一个从 2016-01-20 开始,到 2016-01-28 结束
请注意,当用户尚未被释放时,“DeallocatedTimestamp”为空。
有人可以帮我整理一些 SQL 以获得包含开始和结束日期的会话列表吗?
提前致谢
【问题讨论】:
标签: sql sql-server cumulative-sum