Вычислить разницу между двумя датами в соседних строках одного столбца можно с помощью аналитических функций LAG или LEAD. Первая возвращает значение из предыдущей строки столбца. Вторая из последующей строки столбца. К примеру, следующий запрос выводит время первой записи в предыдущем журнальном файле:
SELECT first_time, LAG(first_time, 1) OVER (ORDER BY first_time) prev_time FROM v$log_history
Теперь можно просто вычесть полученные даты друг из друга. Для удобства отображения разницы дат можно применить функцию EXTRACT. Например, следующий запрос возвращает разницу в минутах межу двумя первыми записями соседних журнальных файлов:
SELECT first_time, prev_time, EXTRACT(MINUTE FROM (first_time - prev_time) DAY TO SECOND) delta FROM ( SELECT first_time, LAG(first_time, 1) OVER (ORDER BY first_time) prev_time FROM v$log_history )