Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Extraindo o tempo para se juntar novamente


Você pode usar lag() e depois filtre:
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;

Aqui é um db<>fiddle.