Re: Retrieving value of column X days later - Mailing list pgsql-general

From Victor Yegorov
Subject Re: Retrieving value of column X days later
Date
Msg-id CAGnEbohe0yORUNEis-D47eC4k0w4hnJNydsGpTjFkiKuWd=9rQ@mail.gmail.com
Whole thread Raw
In response to Retrieving value of column X days later  (Tim Smith <randomdev4+postgres@gmail.com>)
Responses Re: Retrieving value of column X days later  (Tim Smith <randomdev4+postgres@gmail.com>)
List pgsql-general
2016-08-07 22:23 GMT+03:00 Tim Smith <randomdev4+postgres@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

pgsql-general by date:

Previous
From: Sándor Daku
Date:
Subject: Re: Retrieving value of column X days later
Next
From: Tim Smith
Date:
Subject: Re: Retrieving value of column X days later