Nếu bảng của bạn là t và cột dấu thời gian của bạn là ts và bạn muốn có câu trả lời sau vài giây:
SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) )
/
(COUNT(DISTINCT(ts)) -1)
FROM t
Điều này sẽ nhanh hơn hàng dặm đối với các bảng lớn vì nó không có THAM GIA bình phương nào
Điều này sử dụng một thủ thuật toán học dễ thương giúp giải quyết vấn đề này. Bỏ qua vấn đề trùng lặp trong thời điểm này. Chênh lệch thời gian trung bình giữa các hàng liên tiếp là chênh lệch giữa dấu thời gian đầu tiên và dấu thời gian cuối cùng, chia cho số hàng -1.
Chứng minh:Khoảng cách trung bình giữa các hàng liên tiếp là tổng khoảng cách giữa các hàng phân biệt, chia cho số hàng liên tiếp. Nhưng tổng của sự khác biệt giữa các hàng liên tiếp chỉ là khoảng cách giữa hàng đầu tiên và hàng cuối cùng (giả sử chúng được sắp xếp theo dấu thời gian). Và số hàng liên tiếp là tổng số hàng -1.
Sau đó, chúng tôi chỉ cần điều kiện các dấu thời gian phải khác biệt.