Mysql
 sql >> база данни >  >> RDS >> Mysql

текуща средна стойност в mysql

Вашата заявка е един от начините да направите текуща средна стойност:

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

Алтернативата е да използвате променливи:

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;

Индекс на tbl(timestamp) трябва допълнително да подобри производителността.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQLSyntaxErrorException близо до ? когато се опитвате да изпълните PreparedStatement

  2. Използване на Oracle JDeveloper с MySQL Database Service на Oracle Cloud Platform, част 3

  3. Пренареждане / нулиране на първичния ключ за автоматично увеличение

  4. Може ли MySQL надеждно да възстанови резервни копия, които съдържат изгледи или не?

  5. MySql Как да задам локална променлива в изявление за актуализиране (синтаксис?)