Detta är ett luckor-and-ö-problem. Du vill ha början på varje ö, som du kan identifiera genom att jämföra statusen på den aktuella raden med statusen på den "föregående" posten.
Fönsterfunktioner är användbara för detta:
select t.*
from (
select t.*, lag(status) over(partition by personID order by unixtime) lag_status
from mytable t
) t
where lag_status is null or status <> lag_status