Ini adalah Oracle 9i+, menggunakan fungsi LAG untuk mendapatkan nilai stempel waktu sebelumnya tanpa perlu bergabung sendiri:
SELECT t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp) AS diff
FROM YOUR_TABLE t
...tetapi karena bilangan bulat mewakili jumlah hari dalam hasil, selisih kurang dari 24 jam akan menjadi pecahan. Selain itu, LAG akan mengembalikan NULL jika tidak ada nilai sebelumnya -- sama seperti jika menggunakan OUTER JOIN.
Untuk melihat menit, gunakan fungsi ROUND:
SELECT ROUND((t.timestamp - LAG(t.timestamp) OVER (ORDER BY t.timestamp)) *1440) AS diff_in_minutes
FROM YOUR_TABLE t