Sql = как рассчитать вектор возврата с временным рядом цен? - PullRequest
1 голос
/ 21 декабря 2009

У меня есть таблица, в которой есть столбцы price и date, упорядоченные по возрастанию дат.Мне нужно рассчитать из этого вектора возврата, где return = price ( i) / price ( i- 1).Время не основано на времени, что означает, что одна запись может быть в 9:34, следующая в 9: 35, затем в 9: 40 и т. Д. *

Я нашел следующую тему: Синтаксис SQL для вычисления результатов возвращаемых данных, нов Oracle я не могу использовать order by в подзапросе, не могли бы вы мне помочь?

1 Ответ

6 голосов
/ 21 декабря 2009

В Oracle вы можете использовать аналитическую функцию lag:

select 
     price / (lag(price) over (order by i))
,    ...
from PriceHistory

Здесь lag(price) over (order by i) возвращает цену предыдущей строки в наборе, упорядоченном по столбцу i.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...