Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Extrahieren Sie Zeit, um wieder beizutreten

Sie können lag() verwenden und dann filtern:

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;

Hier ist eine db<>Geige.