我有一个sql server的场景,非常感谢您的帮助。我有4列(id到rownum)和1列(bindex)要计算。具体如下
ID StartDate EndDate rownum bindex
A 27/06/2020 12:00 27/06/2020 16:48 1 1
A 27/06/2020 16:48 27/06/2020 21:36 2 1
A 02/07/2020 09:36 04/07/2020 09:36 3 2
A 06/07/2020 09:36 06/07/2020 21:36 4 3
A 06/07/2020 22:00 06/07/2020 23:58 5 3
A 07/07/2020 09:36 07/07/2020 21:36 6 3
A 08/07/2020 09:36 09/07/2020 09:36 7 3
A 11/07/2020 09:36 12/07/2020 09:36 8 4
我要做的是将bindex变量增加1,其中x行的startdate+1-x行的enddate>=1。第一条记录的bindex值为1,然后将其余所有行的bindex值增加1,直到找到另一个break>=1天。
在cte或简单的循环结构中,有什么简单的方法可以做到这一点吗?
非常感谢
1条答案
按热度按时间tsm1rwdh1#
使用
lag()
和一个累积的总和: