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)