sql >> Database >  >> RDS >> Mysql

MySQL gemiddeld aantal uren tussen gemaakte datetimes voor een specifiek tijdsinterval

Het gemiddelde is het verschil tussen de eerste en de laatste records gedeeld door de telling plus een getal.

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

Wat doet dit? Ten eerste voegt het geen extra records toe aan de gegevens. In plaats daarvan wordt de eerdere datum naar beneden afgerond en de latere datum naar boven afgerond. UNIX_TIMETAMP produceert sinds een bepaald moment waarden in milliseconden. Neem het verschil tussen de grootste en de kleinste. Deel ten slotte door het aantal aangetroffen rijen plus 2 (ik denk dat het de telling plus 1 moet zijn, maar uw vraag zegt telling plus 2).



  1. Hoe zoek ik naar rijen die een subtekenreeks bevatten?

  2. Hoe de som van een kolom in een SQL-tabel voor een bepaalde datum berekenen en gemiste waarden patchen met die van de dichtstbijzijnde vorige datum?

  3. Hoe kan ik SQL schrijven voor een tabel die dezelfde naam heeft als een beveiligd sleutelwoord in MySql?

  4. SQL:Hoe tekenreeks uit te voeren is niet gelijk aan