我有一个带有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 |
任何人都可以帮助或建议实现此目标的方法。
答案 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;