Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana menemukan perbedaan waktu rata-rata antara baris dalam sebuah tabel?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PILIH catatan terbaru dengan nilai bukan nol dalam satu kolom

  2. 4 Cara Memeriksa Tipe Data Kolom di MySQL

  3. Bagaimana saya bisa mengimpor data ke database mysql melalui meja kerja mysql?

  4. PHP/MySQL - sertakan bentuk jamak tetapi kecualikan bentuk tunggal

  5. Bagaimana cara memanggil prosedur tersimpan MySQL dari dalam kode PHP?