Let's consider the following query:
with
init as (
select 0.1 as y0
),
cte as (
select 1 as i, 1 as x -- x_1
union all
select 2 as i, 10 as x -- x_2
union all
select 3 as i, 100 as x -- x_3
order by i asc
)
select cte.x, init.y0 -- <- ?
from cte
join init
on true
There is a CTE init
specifying an inital value y_0 and a CTE cte
specifying rows with a value x
and an index i
.
My question is whether I can write a select
which realizes the following simple, recursive formula.
y_n 1 = y_n x_n 1
So, the result should be 3 rows with values: 1.1, 3.1, 6.1
(for y_1, y_2, y_3
).
Would that be possible?
CodePudding user response:
You need to use the “OVER” statement. You can see more
Note: the expected result you shown in your question - does not match the formula you provided - so obviously above output is different from one in your question :o)