sql >> Databasteknik >  >> RDS >> Mysql

Tar ut tid för att gå med igen

Du kan använda lag() och filtrera sedan:

select t.*,
       datediff(start, prev_cancelled) as num_days_since_cancel
from (select t.*,
             lag(cancelled) over (partition by id order by start) as prev_cancelled
      from t
     ) t
where prev_cancelled is not null;

Här är en db<>fiol.



  1. Fördelar med att använda Microsoft Access-mallar

  2. MySQL:Large VARCHAR vs. TEXT?

  3. SQLite REPLACE-sats

  4. Ta bort rad med en Mysql Trigger