Re: recursive sql

From: Igor Andriychuk <2(dot)andriychuk(at)gmail(dot)com>
To: ml(at)ft-c(dot)de
Cc: pgsql-sql(at)lists(dot)postgresql(dot)org
Subject: Re: recursive sql
Date: 2020-08-09 14:22:38
Message-ID: 542D840A-878F-445F-9D3A-B093E14EA2A0@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

I copied over your typo :-), should be:

with recursive r as(
select ts, c, row_id from rnk where rnk.row_id = 1
union
select rnk.ts, rnk.c*0.33 + r.c*0.67, rnk.row_id
from
r
join
rnk
on
r.row_id = rnk.row_id - 1
),
rnk as(
select *, row_number() over(order by ts) row_id from tt
)
select ts, c from r order by ts;

> On Aug 8, 2020, at 11:28 PM, ml(at)ft-c(dot)de wrote:
>
> Hello,
>
> the table
> create table tt (
> ts timestamp,
> c numeric) ;
>
> insert into tt values
> ('2019-12-31',1), ('2020-01-01',2),
> ('2020-07-02',3), ('2020-07-06',4),
> ('2020-07-07',5), ('2020-07-08',6);
>
> My question: It is possible to get an
> additional column (named c2)
> with
> ( c from current row ) + ( c2 from the previous row ) as c2
>
> the result:
> ts c c2
> .. 1 1 -- or null in the first row
> .. 2 3
> .. 3 6
> .. 4 10
> ...
>
> with recursive ema as ()
> select ts, c,
> -- many many computed_rows
> -- <code> as c2
> from tt -- <- I need tt on this place
>
>
> thank you for help
> Franz
>
>

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Franz Timmer 2020-08-09 14:54:51 Re: recursive sql
Previous Message Igor Andriychuk 2020-08-09 14:10:43 Re: recursive sql