Jika tabel Anda adalah t, dan kolom stempel waktu Anda adalah ts, dan Anda menginginkan jawabannya dalam hitungan detik:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Ini akan menjadi mil lebih cepat untuk tabel besar karena tidak memiliki n-kuadrat GABUNG
Ini menggunakan trik matematika lucu yang membantu dengan masalah ini. Abaikan masalah duplikat untuk saat ini. Selisih waktu rata-rata antara baris yang berurutan adalah selisih antara stempel waktu pertama dan stempel waktu terakhir, dibagi dengan jumlah baris -1.
Bukti:Jarak rata-rata antara baris yang berurutan adalah jumlah jarak antara baris yang berurutan, dibagi dengan jumlah baris yang berurutan. Tetapi jumlah perbedaan antara baris berturut-turut hanyalah jarak antara baris pertama dan baris terakhir (dengan asumsi mereka diurutkan berdasarkan stempel waktu). Dan jumlah baris berturut-turut adalah jumlah baris -1.
Kemudian kami hanya mengkondisikan stempel waktu menjadi berbeda.