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

Làm cách nào để bạn tạo ra sự chênh lệch thời gian trung bình giữa các bản ghi trong MySQL?

Bạn phải chuyển đổi dấu thời gian của mình thành một số để có thể làm tròn nó. Và khi bạn có dấu thời gian trung bình, hãy chuyển đổi nó trở lại thành một ngày.

select device, count(*) as cnt, FROM_UNIXTIME(AVG(UNIX_TIMESTAMP(time)), '%i:%s')
from database.table
group by device
having cnt>1
order by device;

Lưu ý:Nếu bạn xem xét thời gian tiêu cực, mức trung bình của bạn là hiển nhiên! Nếu không thì tốt hơn là bạn nên tính toán nó bằng ngôn ngữ script (php, c #, ruby ​​...)

average := avg(ts1–ts2, ts2-ts3, ts3-ts4)
= (ts1–ts2 + ts2-ts3 + ts3-ts4)/3
= (ts4-ts1)/3

Tổng quát:

average = (last entry - first entry) / (number of entries - 1)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. imdbpy2sql.py có xuất nhạc phim sang mysql không?

  2. ms-access không thể xóa

  3. Làm cách nào để giữ các giá trị của một cột duy nhất trong MySQL?

  4. java.sql.SQLException:Kết nối bị đóng [POOL-HikariCP]

  5. DB gì cho cơ sở dữ liệu lớn?