Вы можете получить разницу, используя lag()
:
select t.*,
(timestamp - lag(timestamp, 1, timestamp) over (order by timestamp)) diff_interval
from t;
Я не знаю, является ли преобразование интервала в минуты важной частью вашего вопроса.
Если второй - Достаточная точность, вы можете использовать:
select t.*,
(timestamp - lag(timestamp, 1, timestamp) over (order by timestamp)),
extract(epoch from (timestamp - lag(timestamp, 1, timestamp) over (order by timestamp))) / 60.0 as minutes
from t;