sql >> Database >  >> RDS >> Mysql

SQL Bereken het gemiddelde tijdsverschil tussen de totale rijen

Als je wilt weten hoe vaak (gemiddeld) een rij is ingevoegd, hoef je volgens mij niet alle verschillen uit te rekenen. U hoeft alleen de verschillen tussen aangrenzende rijen op te tellen (aangrenzend op basis van het tijdstempel) en het resultaat te delen door het aantal summands.

De formule

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

kan uiteraard worden vereenvoudigd tot slechts

(TN-T0) / N

De vraag zou dus ongeveer als volgt zijn:

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

Zorg ervoor dat het aantal rijen meer dan 1 is, anders krijgt u de foutmelding 'Delen op nul'. Maar als je wilt, kun je de fout voorkomen met een simpele truc:

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

Nu kunt u de query veilig uitvoeren op een tabel met een enkele rij.



  1. Resultaten bestellen van gretig geladen geneste modellen in Node Sequelize

  2. Schrijf bestand van BLOB mysql python

  3. Hoe het totale aantal open/actieve verbindingen in ms sql server 2005 te bepalen?

  4. Dubbele waarden vinden in MySQL