MSSQL 计算同一列中的日期差异

MSSQL Calculate Date Difference in same column

我的数据如下:

ID  DATE
1   2014-02-01 09:00:00.00
1   2014-03-01 11:00:00.00
1   2014-01-01 11:00:00.00
2   2010-12-01 05:00:00.00
2   2011-10-01 03:30:00.00
2   2012-09-01 02:40:00.00

我需要计算每一行之间的日期差异(天或小时差异都可以)。第一行可以是0,我试过:

date - coalesce(lag(date) over(order by id, date) as day_difference

daydiff(date - coalesce(lag(date) over(order by id, date)) as day_difference

两种变体都不起作用(给出不正确的语法错误)。

请帮忙。

你很接近:

datediff(day, date, coalesce(lag(date) over(order by id, date)))  as day_difference

而且,您可能希望按 ID 进行分区:

datediff(day, date, coalesce(lag(date) over(partition by ID order by id, date)))  as day_difference