第一个日期与其余日期之间的日期差

时间:2020-03-19 01:09:39

标签: sql sql-server tsql date sql-server-2012

我有一个带有Date列的表,如下图所示

|Date      |
|----------|
|2019-01-11|
|2019-01-12|
|2019-01-13|
|2019-01-14|
|2019-01-15|

输出

|Date      |Difference|
|----------|----------|
|2019-01-11|    0     |
|2019-01-12|    1     |
|2019-01-13|    2     |
|2019-01-14|    3     |
|2019-01-15|    4     |

任何人都可以帮助或建议实现此目标的方法。

2 个答案:

答案 0 :(得分:0)

如果您希望每行的日期之间的差异最小,则可以创建一个窗口min()

select date, datediff(day, min(date) over(), date) difference
from mytable
order by date

答案 1 :(得分:0)

这看起来像row_number()

select output,
       row_number() over (order by date) - 1 as difference
from t;

如果您想要最早的区别:

select output,
       datediff(day, min(date) over (), date)
from t;
相关问题