使用postgresql中分区的最后一个值填充列

时间:2015-03-10 05:49:56

标签: sql postgresql window-functions

我正在尝试返回分区的最后一个值并将其应用到列的其余部分

例如,如果我有以下内容......

ID    Date      Status
1     20150101
1     20150201
1     20150301
1     20150401  void
2     20150101
2     20150201
2     20150301 

我想要归还。

ID    Date      Status
1     20150101   void
1     20150201   void
1     20150301   void
1     20150401   void
2     20150101
2     20150201
2     20150301  

我一直在玩下面的内容并且类似无济于事。

select 
ID, 
date, 
case when status is null then last_value(status ignore nulls) 
over (partition by id order by id, date) else status end as status
from table

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您不需要CASE声明:

SELECT id, date, last_value(status) OVER (PARTITION BY id ORDER BY date) AS stat
FROM table;