Лаг в рекурсивном CTE - PullRequest
       20

Лаг в рекурсивном CTE

0 голосов
/ 18 февраля 2020

У меня рекурсивный CTE, и я пытаюсь использовать лаг. Однако задержка возвращает только значение по умолчанию (в данном случае 0). Мне нужно это отставание, чтобы вычислить работающий продукт из последних 7 чисел, который затем будет использован в другом рекурсивном вычислении. Вот мой код:

WITH f2(n,q,qlag) as(
    SELECT 0,1E0,1E0
    UNION ALL
    SELECT f2.n+1
        ,f1.q
        ,LAG(f1.q,7,0) OVER(Order by f1.n)
    FROM    
        f2
        join f1
        on f1.n=f2.n
)
SELECT *
FROM f2

Есть ли способ использовать значения из предыдущей строки (в данном случае 7) в рекурсивном CTE?

...