Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak znaleźć średnią różnicę czasu między wierszami w tabeli?

Jeśli Twoja tabela to t, a kolumna sygnatury czasowej to ts, a chcesz uzyskać odpowiedź w ciągu kilku sekund:

SELECT TIMESTAMPDIFF(SECOND, MIN(ts), MAX(ts) ) 
       /
       (COUNT(DISTINCT(ts)) -1) 
FROM t

Będzie to o wiele szybsze w przypadku dużych stołów, ponieważ nie ma opcji JOIN n-kwadrat

Wykorzystuje uroczą sztuczkę matematyczną, która pomaga w rozwiązaniu tego problemu. Na razie zignoruj ​​problem duplikatów. Średnia różnica czasu między kolejnymi wierszami to różnica między pierwszym i ostatnim znacznikiem czasu, podzielona przez liczbę wierszy -1.

Dowód:Średnia odległość między kolejnymi rzędami to suma odległości między kolejnymi rzędami podzielona przez liczbę kolejnych rzędów. Ale suma różnicy między kolejnymi wierszami to tylko odległość między pierwszym wierszem a ostatnim wierszem (zakładając, że są one posortowane według sygnatury czasowej). A liczba kolejnych rzędów to całkowita liczba rzędów -1.

Następnie po prostu warunkujemy znaczniki czasu, aby były wyraźne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zmienić katalog danych MySQL?

  2. Jak usunąć złe znaki, które nie nadają się do kodowania utf8 w MySQL?

  3. Jak włączyć dziennik zapytań MySQL?

  4. Dodaj przycisk Usuń do tabeli wyników PHP

  5. Excel VBA:pisanie do bazy danych mysql