sql >> Databasteknik >  >> RDS >> Mysql

Hur man beräknar tidsskillnaden mellan nuvarande och föregående rad i MySQL

För att få tidsskillnaden i minuter mellan nuvarande och föregående rad kan du använda timestampdiffdatenow och föregående gång, som du kan få via underfråga:

select ticketid, datenew,
    timestampdiff(minute,datenew,(select datenew from mytable t2
        where t2.ticketid < t1.ticketid order by t2.ticketid desc limit 1)) as diff
from mytable t1

Uppdatera

Här är ett annat sätt att använda en variabel för att lagra föregående datenew värde som kan vara snabbare:

select ticketid, datenew, timestampdiff(minute,datenew,prevdatenew)
from (
    select ticketid, datenew, @prevDateNew as prevdatenew, 
      @prevDateNew := datenew
    from mytable order by ticketid
) t1


  1. Få alla objekt utan loop i OOP MySQLi

  2. SQL:Skapar en relationstabell med 2 olika auto_increment

  3. MySQL - Beställ fråga och visa en slumpmässig rad överst

  4. Fel #2002 Kan inte ansluta till den lokala MySQL-servern via uttaget '/Applications/MAMP/tmp/mysql/mysql.sock' (2)