Mysql
 sql >> Database >  >> RDS >> Mysql

MySQL numero medio di ore tra date e orari creati per un intervallo di tempo specifico

La media è la differenza tra il primo e l'ultimo record diviso per il conteggio più un numero.

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()

Che cosa sta facendo? Innanzitutto, non aggiunge ulteriori record ai dati. Invece, sta solo arrotondando per difetto la data precedente e arrotondando per eccesso la data successiva. UNIX_TIMETAMP produce valori in millisecondi da un certo punto nel tempo. Prendi la differenza tra il più grande e il più piccolo. Infine, dividi per il numero di righe incontrate più 2 (penso che dovrebbe essere il conteggio più 1, ma la tua domanda dice conteggio più 2).