我试图在mySQL中完成某些工作,由于缺乏“滞后”功能以及因为所有关于日期差异的示例,因此很难实现,因为在所有这些例子总是有一个ID到一个日期。在这里,我试图在一个ID内做日期差异,并且当日期差异超过60时,然后返回1的指示符,否则为0.在一个ID内减去多个日期
不知道最好的方法是怎么去做这件事。是否将row_number()与日期结合使用?这个障碍是在多个ID内完成的,因为我读过的很多东西都没有涵盖。任何方向都会有帮助。 谢谢!
ID | Service Date | Date Difference | Indicator
1 | 1/22/2016 | 0 | 1
1 | 3/26/2016 | 64 | 1
1 | 5/25/2016 | 60 | 0
1 | 9/15/2016 | 113 | 1
2 | 8/1/2016 | 0 | 1
3 | 1/26/2016 | 0 | 1
3 | 3/9/2016 | 43 | 0
3 | 4/30/2016 | 52 | 0
4 | 8/9/2016 | 0 | 1
5 | 11/19/2016 | 0 | 1
6 | 10/14/2016 | 0 | 1
7 | 1/31/2016 | 0 | 1
7 | 8/11/2016 | 193 | 1
不能与MySQL使用行号无论是。 –
使用用户变量保存上一行的日期,然后使用'DATEDIFF(service_date,@previous_date)'来获得差异。 – Barmar
您还需要一个用于以前的ID的变量。当ID改变时,你重新开始。 – Barmar