Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Número médio de horas do MySQL entre os datetimes criados para um intervalo de tempo específico


A média é a diferença entre o primeiro e o último registro dividido pela contagem mais algum 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()

O que isso está fazendo? Primeiro, não está adicionando registros adicionais aos dados. Em vez disso, é apenas arredondar a data anterior e arredondar a data posterior. UNIX_TIMETAMP produz valores em milissegundos desde algum ponto no tempo. Pegue a diferença entre o maior e o menor. Por fim, divida pelo número de linhas encontradas mais 2 (acho que deve ser a contagem mais 1, mas sua pergunta diz contagem mais 2).