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

Número promedio de horas de MySQL entre fechas y horas creadas para un intervalo de tiempo específico

El promedio es la diferencia entre el primer y el último registro dividida por el conteo más algún número.

SELECT (UNIX_TIMESTAMP(max(date(created)+1), min(date(created)))/1000)/(count(*)+2) AS timediffsecs
FROM Sessions
WHERE created BETWEEN DATE_SUB(NOW(), INTERVAL 4 DAYS) AND NOW()

¿Qué está haciendo esto? Primero, no está agregando registros adicionales a los datos. En su lugar, se trata simplemente de redondear hacia abajo la fecha anterior y redondear hacia arriba la fecha posterior. UNIX_TIMETAMP produce valores en milisegundos desde algún punto en el tiempo. Toma la diferencia entre el más grande y el más pequeño. Finalmente, divida por el número de filas encontradas más 2 (creo que debería ser el conteo más 1, pero su pregunta dice conteo más 2).