Nếu bạn muốn biết tần suất (trung bình) một hàng được chèn vào, tôi không nghĩ bạn cần phải tính toán tất cả sự khác biệt. Bạn chỉ cần tính tổng sự khác biệt giữa các hàng liền kề (liền kề dựa trên dấu thời gian) và chia kết quả cho số lượng của các triệu và.
Công thức
((T1-T0) + (T2-T1) + … + (TN-TN-1)) / N
rõ ràng có thể được đơn giản hóa thành chỉ
(TN-T0) / N
Vì vậy, truy vấn sẽ giống như sau:
SELECT TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*) - 1)
FROM atable
Đảm bảo số hàng nhiều hơn 1, nếu không bạn sẽ gặp lỗi Phân chia theo số 0. Tuy nhiên, nếu muốn, bạn có thể ngăn lỗi bằng một thủ thuật đơn giản:
SELECT
IFNULL(TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / NULLIF(COUNT(*) - 1, 0), 0)
FROM atable
Giờ đây, bạn có thể chạy truy vấn một cách an toàn đối với một bảng có một hàng.