【发布时间】:2020-10-09 18:22:17
【问题描述】:
所以我有下表:
Id Billing_Date
A00 2020-01-01
A00 2020-02-01
A00 2020-04-01
B91 2020-01-01
B91 2020-03-01
B91 2020-04-01
C11 2020-01-01
我想要做的是从下一行获取日期,如果我没有找到这个日期,那么我将填写 Billing_Date + 60 天。当然,一切都基于 Id。这就是我的数据最终应该是什么样子:
Id Billing_Date Billing_Date_Duo
A00 2020-01-01 2020-02-01
A00 2020-02-01 2020-04-01
A00 2020-04-01 2020-06-01
B91 2020-01-01 2020-03-01
B91 2020-03-01 2020-04-01
B91 2020-04-01 2020-06-01
C11 2020-01-01 2020-03-01
我该怎么做?我知道我应该使用 lead() 之类的东西,但不确定如何在此处执行此操作以及如何与 case when 结合使用。
我认为这会起作用,但它没有:
select Id, Billing_Date,
lead(Billing_Date) over (order by Id) as Billing_Date_Duo
【问题讨论】:
标签: sql postgresql date select window-functions