2016-08-07 22:23 GMT+03:00 Tim Smith <randomdev4+postg...@gmail.com>:
> create table test ( > when date, > foo numeric, > bar numeric, > alice numeric, > bob numeric); > > insert into test values ('2016-01-01',1,2,3,4); > insert into test values ('2016-01-02',5,6,7,8); > insert into test values ('2016-01-03',9,10,11,12); > insert into test values ('2016-01-04',13,14,15,16); > insert into test values ('2016-01-05',17,18,19,20); > I had to rename column "when" into "when_d", as I do not like quoting identifiers. Try this query with window functions: SELECT *,lead(foo,4) OVER (ORDER BY when_d), last_value(foo) OVER (ORDER BY when_d RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) FROM test; This will give you the ability to lookup needed values. You'll have to use subquery though, as window functions are evaluated after the `WHERE` clause. -- Victor Y. Yegorov