sql >> Base de Datos >  >> RDS >> Mysql

SQL Calcule la diferencia de tiempo promedio entre las filas totales

Si desea saber con qué frecuencia (en promedio) se insertó una fila, no creo que necesite calcular todas las diferencias. Solo necesita sumar las diferencias entre filas adyacentes (adyacentes según la marca de tiempo) y dividir el resultado por el número de sumandos.

La fórmula

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

obviamente se puede simplificar a simplemente

(TN-T0) / N

Entonces, la consulta sería algo como esto:

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

Asegúrese de que el número de filas sea mayor que 1, o obtendrá el error División por cero. Aún así, si lo desea, puede evitar el error con un simple truco:

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

Ahora puede ejecutar la consulta de forma segura en una tabla con una sola fila.