sql >> Database >  >> RDS >> Mysql

Hoe creëer je een gemiddeld tijdsverschil tussen records in MySQL?

Je moet je tijdstempel omzetten naar een getal om het af te kunnen ronden. En als je het gemiddelde tijdstempel hebt, converteer het dan terug naar een datum.

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;

Opmerking:als u negatieve tijden in aanmerking neemt, ligt uw gemiddelde voor de hand! Als je dat niet doet, is het een beter idee om het te berekenen met een scripttaal (php, c#, ruby...)

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

Generalisatie:

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


  1. Hoe dubbele door komma's gescheiden waarden in een enkele kolom in MySQL te verwijderen?

  2. bestand wordt niet geüpload in ajax php mysql

  3. Databasegrootte anders na export/import

  4. Hoe we de domeinnaam kunnen vinden met MySQL en reguliere expressie