Здравствуйте!
В mysql есть возможность использовать пользовательские переменные в запросах, что позволяет оптимизировать определенные вычисления.
например - есть таблица pogoda с двумя полями - t и d, t - это временная метка, а d - это результат измерения погоды. Требуется найти максимальный перепад.
Срабатывает следующая конструкция:
Код:
SET @data=NULL, @next_data=NULL, @max_value=0;
SELECT @next_data:=`d` `nextdata`,IF (@next_data - @data>@max_value, @max_value:=@next_data-@data, @max_value), @data:=d FROM `pogoda`;
SELECT @max_value;
Суть в том, что на n-й строке мы знаем значение d на (n-1)-й строке, и можем вычислить разницу за один проход.
Вопрос: можно ли такую же конструкцию выполнить на oracle? Без хранимых процедур, именно вот так, по ходу выполнения запроса. Если можно, то приведите пожалуйста текст запроса.