Mysql
 sql >> Baza danych >  >> RDS >> Mysql

średnia biegowa w mysql

Twoje zapytanie to jeden ze sposobów na obliczenie średniej kroczącej:

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

Alternatywą jest użycie zmiennych:

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;

Indeks w tbl(timestamp) powinien jeszcze bardziej poprawić wydajność.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Błąd ActiveRecord:SAVEPOINT active_record_1 nie istnieje

  2. Co jest bardziej wydajne:wiele tabel MySQL czy jedna duża tabela?

  3. Jak ustawić strefę czasową bazy danych dla instancji AWS RDS?

  4. Wady mysql_real_escape_string?

  5. Konwertuj javascript na obiekt daty na format daty mysql (RRRR-MM-DD)