Thank you Victor Will experiment with this over the next couple of days. On 7 August 2016 at 21:41, Victor Yegorov <vyegorov@xxxxxxxxx> wrote: > 2016-08-07 22:23 GMT+03:00 Tim Smith <randomdev4+postgres@xxxxxxxxx>: >> >> 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 -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general