sql >> Databáze >  >> RDS >> Mysql

Jak vytvoříte průměrný časový rozdíl mezi záznamy v MySQL?

Musíte převést své časové razítko na číslo, abyste jej mohli zaokrouhlit. A až budete mít průměrné časové razítko, převeďte ho zpět na 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;

Poznámka:Pokud uvažujete záporné časy, váš průměr je zřejmý! Pokud ne, je lepší to vypočítat pomocí skriptovacího jazyka (php, c#, ruby...)

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

Zobecnění:

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


  1. Jak mohu replikovat SHOW TABLES v Hibernate?

  2. Vytvořte proces mysql pro import databáze pomocí node

  3. ORA-03113:konec souboru na komunikačním kanálu

  4. SQL Server sp_msforeachtable použití k výběru pouze těch tabulek, které splňují určitou podmínku