Mysql
 sql >> Base de données >  >> RDS >> Mysql

Stocker le temps entre les enregistrements

Il serait utile que vous prépariez des exemples de tableaux et d'insertions de données.
Lisez ce lien pour savoir pourquoi il est si important si vous souhaitez obtenir de l'aide :http://tkyte.blogspot.com/2005/06/how-to-ask-questions.html

Cette fois je l'ai créé pour vous, cliquez sur ce lien : http://sqlfiddle.com/#!2/9719a/2

Et essayez cette requête (vous trouverez cette requête avec des exemples de données sous le lien ci-dessus) :

select alias1.*,
       timestampdiff( second, previous_viewed_at, viewed_at ) 
         as time_between_viewings
from (
select alias.*,
       (
         select viewed_at from (
             select
             ( select count(*) from asset_usages y
                where x.asset_id = y.asset_id 
                and y.viewed_at < x.viewed_at
              ) as rn,
              x.* 
              from asset_usages x
          ) xyz
          where xyz.asset_id = alias.asset_id 
               and xyz.rn = alias.rn - 1
       ) previous_viewed_at
from (
  select
    ( select count(*) from asset_usages y
      where x.asset_id = y.asset_id 
        and y.viewed_at < x.viewed_at
    ) as rn,
    x.* 
  from asset_usages x
) alias
) alias1;