为用户选择"下次登录时间"



我有一个名为[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

使用LEAD

select SessionID, 
UserId, 
StartDate, 
EndDate, 
lead(StartDate) over(partition by UserID order by StartDate) as NextStartDate
from MyTable

注意,这将不考虑任何交叉,并将为用户返回下一个开始日期,无论它们之间是否发生了结束日期

最新更新