Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SQL Tính thời gian chênh lệch trung bình giữa tổng số hàng

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP:tại sao tôi không thể lặp lại hai lần trên kết quả mysqli_fetch_array ()?

  2. Sử dụng hàm password_hash và password_verify của PHP 5.5

  3. Làm cách nào để nhập tệp sql vào cơ sở dữ liệu bỏ qua các dòng X trong tệp?

  4. Thứ tự MYSQL theo cả sắp xếp Tăng dần và Giảm dần

  5. Cách cập nhật nhiều cột trong MySQL