我有一个名为[Session]的表
|SessionId | UserId | StartDate| EndDate |
| 1 | 1 | 09:00 | 11:00 |
| 2 | 2 | 09:10 | 11:10 |
| 2 | 1 | 11:20 | 15:00 |
如何为每个用户返回带有名为NextStart Date的额外列的表结果?因此,在上述示例中,第一行将返回
|SessionId | UserId | StartDate| EndDate | NextStartDate
| 1 | 1 | 09:00 | 11:00 | 11:20
答案 0 :(得分:5)
使用铅
select SessionID,
UserId,
StartDate,
EndDate,
lead(StartDate) over(partition by UserID order by StartDate) as NextStartDate
from MyTable
请注意,这不会考虑任何交叉,并且将为用户返回下一个开始日期,无论它们之间是否发生了结束日期