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

SQL Oblicz średnią różnicę czasu między wszystkimi wierszami

Jeśli chcesz wiedzieć, jak często (średnio) wstawiano wiersz, nie sądzę, że musisz obliczać wszystkie różnice. Wystarczy zsumować różnice między sąsiednimi wierszami (sąsiednimi na podstawie znacznika czasu) i podzielić wynik przez liczbę sum.

Formuła

((T1-T0) + (T2-T1) + … + (TN-TN-1)) / N

można oczywiście uprościć do zaledwie

(TN-T0) / N

Zapytanie wyglądałoby więc mniej więcej tak:

SELECT TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / (COUNT(*) - 1)
FROM atable

Upewnij się, że liczba wierszy jest większa niż 1, w przeciwnym razie pojawi się błąd dzielenia przez zero. Mimo to, jeśli chcesz, możesz zapobiec błędowi za pomocą prostej sztuczki:

SELECT
  IFNULL(TIMESTAMPDIFF(SECOND, MIN(date), MAX(date)) / NULLIF(COUNT(*) - 1, 0), 0)
FROM atable

Teraz możesz bezpiecznie uruchomić zapytanie w tabeli z jednym wierszem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. podłączenie serwera MySQL do NetBeans

  2. Pętla Foreach używająca ciągu znaków do wyprowadzenia XML

  3. jak wywołać procedurę składowaną MySQL w wiosennym rozruchu przy użyciu hibernacji?

  4. MySQL - Złożoność:SELECT COUNT(*) FROM MyTable;

  5. Jak używać, jak w przypadku, gdy warunek w sequelize, węzeł js