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

menjalankan rata-rata di mysql

Kueri Anda adalah salah satu cara untuk melakukan rata-rata berjalan:

SELECT t.*,
       (select avg(speed) from tbl tt where tt.timestamp <= t.timestamp) as avg
FROM tbl t;

Alternatifnya adalah dengan menggunakan variabel:

select t.*, (sum_speed / cnt) as running_avg_speed
from (select t.*, (@rn := @rn + 1) as cnt, (@s := @s + speed) as sum_speed
      from tbl t cross join
           (select @rn := 0, @s := 0) params
      order by timestamp
     ) t;

Sebuah indeks pada tbl(timestamp) harus lebih meningkatkan kinerja.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kinerja MySQL - IN Clause vs. Equals (=) untuk Nilai Tunggal

  2. bagaimana cara mengurutkan urutan LEFT JOIN dalam kueri SQL?

  3. Bagaimana cara mendapatkan ID Variasi Woocommerce?

  4. Hitung nilai yang berbeda

  5. CREATE FUNCTION error Fungsi ini tidak memiliki DETERMINISTIC, NO SQL, atau READS SQL DATA